2011-07-14 64 views
0

是否有可能以普通的方式擴展插件的普通事件?延長插件的點擊事件?

例如 說我有一個插件A,它做的東西和對元素的點擊事件作出反應 我現在要執行一些操作時,單擊該元素,後我做了我的東西我希望插件做任何事onlick 。

此刻我正在手動查看插件並創建自定義代碼,但是可能有一些常規方法可以暫時阻止插件的單擊事件,然後觸發它?

+0

請添加一個更具體的例子來關注一個。這聽起來很模糊。應該可以通過偵聽器等來實現,但我需要一個例子來向你展示... – powerMicha

+0

我建議你截取父(外)對象上捕獲階段的事件。如果無法立即處理,您可以在那裏阻止該事件,並在以後人工發送。但是這個解決方案與jquery完全沒有關係,這是純粹的JavaScript。 – Tino

回答

3

您可以將多個事件處理程序綁定到一個單一的事件,因此,舉例來說,你可以做這樣的事情:

$("#theElement").bind("click", yourFunction); 

在觸發click事件這將被執行以及現有的代碼。但是,沒有什麼可以說它會在現有代碼之前運行。

不幸的是,jQuery沒有提供排序事件的方法,所以我認爲你最好的辦法可能就是簡單地修改插件中的click事件處理函數來首先調用你的函數。

2

的點擊可以通過添加阻止:

return false; 

這基本上不一樣:

e.preventDefault(); // prevents default behaviour when clicking on it 
e.stopPropagation(); // prevent bubbling up the dom tree 

如果這些都沒有在代碼中的點擊應該只是做它一般不會。

我一直處於這種情況下,我必須做return true;強制它。

但我不知道什麼時候需要。