从 Backbone Js 视图取消绑定事件,而不影响 DOM
Unbind events from Backbone Js View, with out effecting the DOM
有一个 backbone 视图,它有一些特定 类 的事件。假设 html 会像这样。
<div class=""some1">
<a href="#" class="inner1"> Loaction 1 </a>
<a href="#" class="inner2"> Loaction 2 </a>
<a href="#" class="inner3"> Loaction 3 </a>
// All possible hierarchy goes here , like combination of div , a, span
// and every tag has class
// for classes there will be backbone view
<input class="inputclass" type="text"> // input submission
</div>
假设 backbone 观看次数将是
//sampleView.js
template: '_SampleHtml',
events: {
"click .inner1": "clickinner1",
"click .inner2": "clickinner2",
"click .inner3": "clickinner3",
"click .inner4": "clickinner4",
...
....
......
"click .inputclass": "inpputclass",
},
clickinner1: function() {
//do something
},
clickinner2: function() {
//do something
},
clickinner3: function() {
//do something
},
clickinner4: function() {
//do something
}
inpputclass: function() {
// if input is having one particular condition
// i want to remove all the events i.e only 'onclick ' should not work on view,
//means even if you click 'Loaction 1 ' , respective event should not occur
// and contents should be present on DOM
}
我试过“解除绑定()”,“关闭”,"stopListening()","委托事件 在 Backbone”。没有任何东西符合我的标准。
当我使用代表时,内容正在从 DOM 中删除。
有什么方法可以删除特定 div 下的所有事件。喜欢 "some1"?
P.S: 我附上一张图片,我就是在这个问题发生的地方。请关注以获得准确的想法。
您可以使用 undelegateEvents
从视图中删除所有事件侦听器
有一个 backbone 视图,它有一些特定 类 的事件。假设 html 会像这样。
<div class=""some1">
<a href="#" class="inner1"> Loaction 1 </a>
<a href="#" class="inner2"> Loaction 2 </a>
<a href="#" class="inner3"> Loaction 3 </a>
// All possible hierarchy goes here , like combination of div , a, span
// and every tag has class
// for classes there will be backbone view
<input class="inputclass" type="text"> // input submission
</div>
假设 backbone 观看次数将是
//sampleView.js
template: '_SampleHtml',
events: {
"click .inner1": "clickinner1",
"click .inner2": "clickinner2",
"click .inner3": "clickinner3",
"click .inner4": "clickinner4",
...
....
......
"click .inputclass": "inpputclass",
},
clickinner1: function() {
//do something
},
clickinner2: function() {
//do something
},
clickinner3: function() {
//do something
},
clickinner4: function() {
//do something
}
inpputclass: function() {
// if input is having one particular condition
// i want to remove all the events i.e only 'onclick ' should not work on view,
//means even if you click 'Loaction 1 ' , respective event should not occur
// and contents should be present on DOM
}
我试过“解除绑定()”,“关闭”,"stopListening()","委托事件 在 Backbone”。没有任何东西符合我的标准。 当我使用代表时,内容正在从 DOM 中删除。 有什么方法可以删除特定 div 下的所有事件。喜欢 "some1"?
P.S: 我附上一张图片,我就是在这个问题发生的地方。请关注以获得准确的想法。
您可以使用 undelegateEvents
从视图中删除所有事件侦听器