Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否从余烬操作停止单击传播?_Javascript_View_Ember.js_Click - Fatal编程技术网

Javascript 是否从余烬操作停止单击传播?

Javascript 是否从余烬操作停止单击传播?,javascript,view,ember.js,click,Javascript,View,Ember.js,Click,我有这样一段代码,当单击图标编辑范围时,它会触发一个打开模式的操作,但是,同时,单击会传播到它下面的视图(personView)。我希望操作执行并停止传播 我能想到的唯一解决方案是让图标编辑自己的视图,并通过在单击方法中返回false来停止单击传播。有没有其他方法可以做到这一点而不提出另一种观点 哈佛商学院: {{#视图块.PersonView} {{firstNameDelayed} {{/view} 尝试修改操作: modalOpen: function { //code of yo

我有这样一段代码,当单击图标编辑范围时,它会触发一个打开模式的操作,但是,同时,单击会传播到它下面的视图(personView)。我希望操作执行并停止传播

我能想到的唯一解决方案是让图标编辑自己的视图,并通过在单击方法中返回false来停止单击传播。有没有其他方法可以做到这一点而不提出另一种观点

哈佛商学院:

{{#视图块.PersonView}

{{firstNameDelayed}

{{/view}
尝试修改操作:

modalOpen: function {
    //code of your action
    return false;    
}

这在类似的情况下对我有效

您也可以将
bubbles=false
参数添加到
action
标记中。有关如何配置事件传播的信息,请参阅

实现这一点的辛烷值方法是使用插件的
停止传播
助手



PersonView中是否已经调用了单击事件挂钩,您是否正在处理modalOpen操作中的单击?person View中有一个单击事件挂钩一个选项是查看PersonView中的event.target,如果目标是.icon edit,则使用Em.ViewtargetActionSupport mixin调用modalOpen操作。但这还是有点不太对劲。您可能需要使用event.preventDefault();和event.stopPropagation();这是我最初选择的一个更好的答案。刚刚把这个换成了公认的答案!令人惊叹的!这正是我要找的。顺便说一句,与ember doc相关的链接没有提到气泡上的任何内容。很可能这对ember 2.x不再有效(通过上面的链接,您会自动重定向到2.x指南部分),因为该项目仍然存在于ember 1.x文档中。实际上,这对我使用ember 2.5是有效的。我只是在模板中动作定义的最后一个参数之后添加了bubbles=false。Tnx,bubble=false没有帮助,但这是肯定的。希望您尝试了与返回false完全相同的
bubbles=false
在动作中起作用。
modalOpen: function {
    //code of your action
    return false;    
}
<span class="inline pull-right icon-edit" {{on "click" (stop-propagation (queue this.modalOpen this.modifyPersonPopup this.modifyPerson))}}></span>