2016-10-28 87 views
1

我有一些內聯onclick事件的代碼,並且該代碼無法更改。將內聯onclick事件與jquery onclick事件相結合

代碼沒有

onclick="javascript:document.myform.hiddenfield.value='1234'; 
document.myform.submit(); return false;" 

現在,我想攔截和與外部的jQuery文件進行修改。

但是,我發現內聯onclick將通過jQuery在任何附加事件之前運行。

所以我的想法是做一些事情的onload,像取內嵌的onclick文字,把它寫爲鏈接一個新的屬性,比如說oldonclick,然後設置的onclick通過$ .prop()爲null

然後我事件處理程序可以做到這一點,如果滿足要求,實際上可以讀取並執行舊值。

但是,在第一個障礙中,我有點卡住了,$ .prop(「onclick」)返回一個函數,而不是onclick中的字符串。因此我無法將其分配給某個虛擬值並轉到下一步。

如何將onclick作爲文本讀取,以及如何通過其他方式實現此jQuery攔截?

+0

怎麼樣'VAR FUNC =的document.getElementById( 「someobjectID」)onclick'或'$( 「#someobjectID」)獲得。 (0).onclick' – mplungjan

回答

1

試試這個:

var onclick = $("a").attr("onclick"); //This is a string 

檢查小提琴:https://jsfiddle.net/p50keLy6/

+0

我認爲prop的使用現在比attr更受青睞,因爲在將來的版本中它不會被支持太多。 – wcndave

+0

我沒有在jQuery文檔中找到這樣的信息。要詳細瞭解'attr()'和'prop()'之間的區別,請訪問以下鏈接:http://api.jquery.com/attr/ –