2011-08-05 37 views
10

我開發了一個jQuery UI插件,不能真正理解使用哪種方法。 按照jQuery UI的文檔,我應該用_trigger觸發事件,這使得處理程序與插件進行初始化像jquery ui _trigger vs trigger

$("#id").pluginname({ 
    click: function(){ 
     //called when clicked 
    } 
}); 

但是,如果我以後要更多的聽衆重視這個事件我不能找到任何方式來做到這一點。 我想使用jquery綁定,但那不起作用。 例如:

$("#id").bind("click", function(){ 
    //This does not get fired on click if using _trigger 
}) 

我到目前爲止唯一的解決辦法是雙方的火,但感覺有種異樣。 我的代碼必須做到以下幾點工作:

$("#id").pluginname({ 
    click: function(){ 
    //called when my plugin uses this._trigger('click') 
    } 
}).bind(function(){ 
    //called when my plugin uses this.element.trigger('click') 
}); 

我使用自定義事件,但並沒有認爲這是相關的提問。 任何人有使用_trigger()時如何使用事件鏈接的想法?

回答

10

你應該結合這樣的:

$("#id").bind("pluginnameclick", function(){ 
+0

喜清理的事件,我不能讓這個爲了工作,你有沒有參考我可以閱讀的任何文檔以更好地理解這一點? – Tommy

+0

嗯。對不起,不記得任何。 試試這個 - http://www.erichynds.com/jquery/tips-for-developing-jquery-ui-widgets/(搜索「dialogopen」) – bullgare

+6

嗨,謝謝你的回答。幸運的是,我在頁面上發現了一條評論,表示事件名稱已被轉換爲小寫。我在這個案例中的例子並沒有發現我有一個駱駝案件名稱的事件。但這意味着你的建議是正確的。非常感謝幫助我解決這個問題。 – Tommy

4

你應該使用this._onthis._trigger要做到這一點,從而破壞widget時事件得到清理運。

否則必須解除綁定自己或其他小部件沒有得到瀏覽器的垃圾收集

希望這個回答你的問題

+0

只是想知道是否有任何文件? – Giraldi