防止标题内的元素扩展

时间:2011-08-23 08:36:34

标签: jquery-ui accordion

我正在使用jQueryUI Accordion,并动态生成元素。如果我们点击标题内的删除操作链接,我需要阻止手风琴扩展。

  

要在使用.live()进行绑定后停止执行其他处理程序,处理程序必须返回false。调用.stopPropagation()不会实现此目的。

return false没有运气。请参阅demo

2 个答案:

答案 0 :(得分:1)

由于jQuery仅支持event bubbling and not event capturing,我认为用live()实现你想要的东西并不会太运气。设计决策可能是因为IE不支持事件捕获,即使W3C的规范具有两者的灵活性。

最好的办法是在重新启动手风琴之前,将一个点击事件附加到删除按钮后立即插入DOM(以停止事件传播)。您可能需要注意不要将click事件多次绑定到现有的删除按钮。

伪代码看起来像这样:

  1. 在当前的手风琴上致电.accordion('destory')
  2. 创建新元素,即<h2>...<a class="revmoe">...</a></h2><div>...</div>
  3. 将新元素插入现有的手风琴
  4. 将click事件绑定到新元素中的remove按钮以停止事件传播
  5. 发起手风琴,即.accordion({..})
  6. 关于jQuery中事件捕获的帖子:

答案 1 :(得分:0)

只需使用插件给定的函数:

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

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

})

我选择了“active:8”选项,因为这样就没有从头开始打开标题(索引-1对IE不起作用)。检查功能和选项:http://docs.jquery.com/UI/Accordion

希望这是你要找的东西: - )