2011-08-23 138 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/ –