Javascript 主干和jQuery事件
我有一个简单的任务-从DOM元素中检索click listener函数 我遇到了两个问题:Javascript 主干和jQuery事件,javascript,jquery,javascript-events,backbone.js,Javascript,Jquery,Javascript Events,Backbone.js,我有一个简单的任务-从DOM元素中检索click listener函数 我遇到了两个问题: 我不知道如何获取事件侦听器,它是通过addEventListenerfunc设置的 $(元素)。数据(“事件”)始终为空 谈到第一个问题——我认为这并不重要,因为我只在一个地方使用这个函数。但第二个问题是巨大的痛苦 我在纯jQuery环境中进行了测试: $(element).click(function(){}) $(element).data('events') /*contains e
$(element).click(function(){})
$(element).data('events') /*contains events info*/
但有骨气:
$(element).click(function(){})
$(element).data('events') /*alway empty*/
我不是JS大师,但似乎根本没有绑定的数据。。。也许这只是一种典型的主干行为,但仍然-我如何检索事件处理程序?如果您使用的是Backbone.js,那么您应该管理对象内部的事件,避免直接使用JQuery捕获事件 您应该尝试以下方法:
var myBody = $( 'body' );
var myDIV = $( '<DIV id="contentDIV"></DIV>' );
myBody.append( myDIV );
var myButton = $( '<button id="aButton">test</button>' );
myDIV.append ( myButton );
var MyView = Backbone.View.extend({
el : myDIV,
events: { 'click button#aButton' : 'doSomething' }, //here you bound the
//event to a function.
initialize: function(){
_.bindAll(this, 'render')
},
render: function(){
myDIV.append('<br>working...');
},
doSomething: function(){
alert( 'doSomething function.. after click event' );
}
});
var myView = new MyView;
myView.render();
var myBody=$(“body”);
var myDIV=$('');
myBody.append(myDIV);
var myButton=$(“测试”);
myDIV.append(myButton);
var MyView=Backbone.View.extend({
el:myDIV,
事件:{'click button#aButton':'doSomething},//在这里您绑定了
//事件到函数。
初始化:函数(){
_.bindAll(此“呈现”)
},
render:function(){
myDIV.append(“
正在工作…”);
},
doSomething:function(){
警报('doSomething function..after click event');
}
});
var myView=newmyview;
myView.render();
PS:了解其工作原理的一个很好的教程:您为“但有主干”示例发布的代码与您的“纯jQuery环境”示例完全相同。显然,你正在做的另一件事就是打破它。您需要将这些添加到您的问题中。