2012-10-17 114 views
2

有沒有辦法讓$(selector).click(function)在內聯onClick="function"之前或之前運行?

此外,如果可能,我想停止內聯函數完全運行(在$(selector).click()內使用preventDefault())。

下面就來說明優先級小提琴:http://jsfiddle.net/yUZWR/1/

回答

1

假設你的意思是錨ID被稱爲link而不是#link,這是如何扭轉函數執行順序......

var v = $('#link').attr('onclick'); 

$('#link').removeAttr('onclick').click(function(){ 
    alert('captured'); 
    return false; 
}).click(function() { eval(v); }) 

我敢肯定有這樣做的更好的方法,即不使用eval。爲了防止內聯函數完全運行,只需省略第二次調用click即可。

相關問題