Javascript 如何使用递归Backbone.js视图防止多次偶数触发?
我有一个应用程序,其中有一个嵌套列表,我正试图用主干管理它。每个单独的Javascript 如何使用递归Backbone.js视图防止多次偶数触发?,javascript,backbone.js,Javascript,Backbone.js,我有一个应用程序,其中有一个嵌套列表,我正试图用主干管理它。每个单独的元素都有一个视图,但每个列表元素都有自己的嵌套标记,该标记有自己的视图实例化。以下是一个例子: HTML <ul class='elements'> <li class='element'> <div> <a class='edit-element'>Edit</a> </div> <ul class=
元素都有一个视图,但每个列表元素都有自己的嵌套
标记,该标记有自己的视图实例化。以下是一个例子:
HTML
<ul class='elements'>
<li class='element'>
<div>
<a class='edit-element'>Edit</a>
</div>
<ul class='elements'>
<li class='element'>
<div>
<a class='edit-element'>Edit</a>
</div>
</li>
</ul>
</li>
</ul>
问题是,如果我单击一个子元素,两个视图都会在那里触发edit_元素事件,这是有问题的,原因有几个。我如何构造它,以便当我单击子
中的链接时,它为该触发,而不是任何包含它的触发?主干的事件处理程序只是普通的旧jQuery事件处理程序,因此您可以使用以下方法停止传播:
演示:
或者通过返回false
:
edit_element: function(event) {
//...
return false;
}
演示:主干网的事件处理程序只是普通的老jQuery事件处理程序,因此您可以使用以下方法停止传播:
演示:
或者通过返回false
:
edit_element: function(event) {
//...
return false;
}
演示:除了前面说过的“mu太短”之外,我可以想出三种方法来解决这个问题。按照我个人的偏好顺序:
使用更具体的选择器。在这种特殊情况下,单击.edit element:first
可能会起作用,因为编辑按钮位于子列表的编辑按钮之前李>
不要使用主干events
集合,而是直接绑定到您感兴趣的元素。因此,在呈现子列表之前,请执行类似以下操作:this.$(“.edit element”)。单击(u.bind(myClickHandler,this))
李>
将代码放在处理函数中,查看单击了哪个元素,并查看它是否是您感兴趣的元素。这方面的代码有点复杂,我认为这不是一个特别好的解决方案,因此没有示例代码。:)李>
除了已经说过的“穆太短”之外,我可以想出三种方法来解决这个问题。按照我个人的偏好顺序:
使用更具体的选择器。在这种特殊情况下,单击.edit element:first
可能会起作用,因为编辑按钮位于子列表的编辑按钮之前李>
不要使用主干events
集合,而是直接绑定到您感兴趣的元素。因此,在呈现子列表之前,请执行类似以下操作:this.$(“.edit element”)。单击(u.bind(myClickHandler,this))
李>
将代码放在处理函数中,查看单击了哪个元素,并查看它是否是您感兴趣的元素。这方面的代码有点复杂,我认为这不是一个特别好的解决方案,因此没有示例代码。:)李>
edit_element: function(event) {
//...
return false;
}