gpt4 book ai didi

javascript - 点击事件未触发! (主干.js)

转载 作者:搜寻专家 更新时间:2023-11-01 05:06:34 24 4
gpt4 key购买 nike

我的 View 有一个点击处理程序,但似乎 View 的 el $('#modal') 当被点击事件处理程序定位时不会触发单击时。但是当我定位 $('modal') 的任何子级时,单击事件会在单击时触发。

我猜 $('#modal') 不被视为 View 的一部分,因此 events 中定义的点击事件处理程序对其不起作用。如果是这样,还有其他解决方法吗?

ModalView = Backbone.View.extend({
el: $('#modal'),

template: _.template( $('#tpl_modal').html() ),

events: {
'click #modal': 'closeModal'
},

initialize: function() {
_.bindAll(this, 'render', 'renderSimilarPosts', 'closeModal');
this.render();
},

render: function() {
$(this.el).fadeIn('fast').append( this.template( this.model.toJSON( this.model ) ) );
},

closeModal: function() {
// some code
}
});

最佳答案

代替:

'click #modal': 'closeModal'

尝试:

"click": 'closeModal'

Backbone 事件使用 jQuery 的 delegate 函数,它将处理程序(在本例中为 closeModal)应用于匹配给定选择器(在本例中为 click #模态)。由于使用 click #modal 我们正在 #modal 中查找名为 #modal 的子项,因此未找到任何元素。

查看 delegate()明白我的意思。

关于javascript - 点击事件未触发! (主干.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11422281/

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