gpt4 book ai didi

javascript - 主干和 jQuery 事件

转载 作者:行者123 更新时间:2023-11-30 13:26:29 25 4
gpt4 key购买 nike

我有一个简单的任务 - 从 DOM 元素检索点击监听器函数。

我已经解决了两个问题:

  1. 我不知道如何获取事件监听器,它是通过addEventListener 函数设置的
  2. $(element).data('events') 总是

关于第一个问题 - 我认为这并不重要,因为我只在一个地方使用这个功能。但是第二个问题是一个巨大的痛苦......

我已经在纯 jQuery 环境中进行了测试:

    $(element).click(function(){})
$(element).data('events') /*contains events info*/

但是有了 Backbone:

    $(element).click(function(){})
$(element).data('events') /*alway empty*/

我不是 JS 大师,但似乎根本没有绑定(bind)数据...也许这只是典型的 Backbone 行为,但仍然 - 我如何检索事件处理程序?

最佳答案

如果您使用的是 Backbone.js,您应该在 Backbone.View 中管理您的事件对象并避免直接使用 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();

PS:了解其工作原理的好教程:http://arturadib.com/hello-backbonejs/

关于javascript - 主干和 jQuery 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8290084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com