2009-10-10 128 views
1

我敢肯定這很簡單,但我砰的一聲!取消綁定jquery插件

我使用優秀的jQuery插件可編輯(http://www.appelsiini.net/projects/jeditable)。用戶可以即時創建表單,然後單擊以編輯標題,文本正文,whatnot。

每個用戶創建一個新的問題的時候,我重新綁定插件像這樣:

$('.edit').editable() 

在以利用類「編輯」的每一個元素,應該是可編輯的。

的問題是,以前的「編輯」元素似乎得到雙重束縛......那就是,當你點擊編輯,輸入欄顯示出來,包含如下:

<input class=""> 

這使得因爲它已經綁定了兩次(或更多)。如何最好地解決這個問題?我的直覺是解開所有'編輯'元素的插件,然後重新綁定它,但我不知道該怎麼做。

感謝您的幫助

回答

5

「插件」只是爲jQuery.fn添加的功能。除非創建者定義了刪除或銷燬方法,否則不能顛倒該功能。

編輯:可編輯功能,當給定參數'destroy'時,取消綁定插件。

1

將您的選擇器範圍僅限於新創建的表單。

$('<form>...</form>').appendTo('someDiv') 
        .find('.edit') 
        .editable(); 

$('form:last').find('.edit') 
       .editable(); 

注意,對於形式的選擇只是一個例子。您只需要找到正確的表單,並僅將可編輯的插件應用於其中的edit類裝飾的項目。

+0

我明白了。這可能是一種更好的方法,那麼我就可以做到這一點,所以我會給這個鏡頭,但我仍然對原始問題很好奇 - 取消插件 – thekevinscott 2009-10-10 16:51:54

+0

您必須知道哪些事件是由特定的插件並使用unbind()方法刪除這些事件/函數對。這可能最好由每個插件提供,例如jQuery UI對話框插件通過destroy方法執行此操作:http://docs.jquery.com/UI/Dialog#method-destroy – tvanfosson 2009-10-10 17:27:02