2011-08-23 94 views
3

我正在使用jQueryUI Accordion,並即時生成元素。如果我們點擊標題中的刪除操作鏈接,我需要防止手風琴擴展。防止擴展標題內的元素

要使用.live()在一個綁定之後停止執行進一步的處理程序,處理程序必須返回false。調用.stopPropagation()將無法完成此操作。

不幸return false。請參閱demo

+0

你是如何加入手風琴新元素? –

+0

@William牛附加(),摧毀和召回手風琴()。 –

+0

如果我們看到您的代碼和標記,那麼診斷代碼問題總是更容易。 HTML,CSS和JS。 –

回答

1

我不認爲你將有太多的運氣獲得你想要live()什麼,jQuery的只支持event bubbling and not event capturing。設計決定可能是由於IE不支持事件捕獲的事實,儘管W3C的說明具有兩種靈活性。

最好的辦法是在重新啓動手風琴之前,將插入到DOM中的單擊事件添加到DOM中(以停止事件傳播)。您可能需要注意不要將點擊事件綁定到現有的刪除按鈕多次。

的僞代碼將是這個樣子:

  1. 呼叫.accordion('destory')對當前手風琴
  2. 創建新元素,即​​
  3. 插入到現有的手風琴
  4. 綁定一個新元素單擊新元素中的刪除按鈕以停止事件傳播
  5. 發起手風琴,即.accordion({..})

事件jQuery中捕捉SO帖子:

+0

謝謝。工作演示:http://jsfiddle.net/JeaffreyGilbert/wVghG/32/ –

0

由插件只需使用給定功能:

$('#accordion').accordion({active:8, disabled:true}); 

jQuery('.remove').click(function(){ 
$('#accordion').accordion('disable'); 

}) 

我選擇了選項「活動:8」,因爲這種方式沒有頭從開業之初(指數-1不適用於IE瀏覽器)。檢查的功能和選項了:http://docs.jquery.com/UI/Accordion

希望這是你要找的人:-)

+0

我需要使用'.live','.click'這麼簡單:http://jsfiddle.net/JeaffreyGilbert/wVghG/31/ –