2014-03-12 10 views
1

我有一个项目列表,其中每行是{{link-to}} 在这个链接里面我有一个标题和一个按钮。 Items listEmber.js取消{{link-to}}中的自定义视图元素的气泡

基本上我不想传播到{{link-to}}对其他元素的操作。 我很容易的按钮{{action 'buttonClick' this bubbles=false}}

但标题其实是一个简单的<span>它具有一个附加的jQuery插件(X-可编辑),当我点击<span>

X-editable in action

它正常工作时被触发,除了{{link-to}}被触发的各一次,我点击{{span}}和事件恶化Save和X编辑Cancel行动是由{{link-to}}

一旦截获我移动<span>以外的{{link-to}}元素它工作正常。

任何想法?

+0

如果你使用jQuery的''stopPropagation'例如'$('。test-span')。click(function(e){e.stopPagagation();});'它的行为是否符合你的要求? – melc

+0

@melc是的,我已经试过了。它仅在初始点击时停止传播。但是当小盒子弹出时,它的动作仍在传播。我真的不想破解插件,插入''e.stopPropagation()''在这里和那里...... – kernelpanic

+0

实际上不需要破解插件,只是提到'stopPropagation'黑客。只需为'{{link-to}}帮助器中包含的所有元素调用'e.stopPropagation()'。例如,'$(document).on('click','#test span,#test a',function(e){e.stopPropagation();});'。如果您正在使用的插件稍后动态添加元素,我建议使用'on'的代表风格(https://api.jquery.com/on/)。 – melc

回答

2

一种方法是使用jQuery的stopPropagation 例如, $('.test-span').click(function(e){e.stopPropagation();});

对于{{link-to}}帮助程序中包含的所有元素,实际上只需要调用e.stopPropagation()即可。例如, $(document).on('click','#test span,#test a',function(e){e.stopPropagation();});

我提出的onhttp://api.jquery.com/on)委派风味如果所用的插件在稍后的点动态地添加元素。