单击按钮上的图标字体图标(有时是文本)时,Backbone.js事件未触发

Backbone.js events not firing when clicking on Icon-Font-Icon (sometimes text) on button

本文关键字:图标 Backbone js 事件 按钮 字体 单击 文本      更新时间:2023-09-26

当点击带有图标字体的按钮(如图标)时,我的Backbone点击事件不会触发。

例如,一个视图如下:

var NetworkStatusView = Backbone.View.extend({
template: _.template(Helper.view('network/status')),
events: {
    'click a': 'navigate'
},
navigate: function (el)
{
    Backbone.history.navigate($(el.target).attr('href'), true);
    return false;
},
render: function ()
{
    this.$el.html(this.template(userlocation.toJSON()));
    return this;
}

});

在模板中,一个"按钮"看起来像这样(是的,它是引导程序;):

<a href="/link" class="btn"><i class="icon-info-sign"></i> Über</a>

你知道为什么这些事件在点击按钮的边框、填充和自由空间时会触发,但在点击图标(有时还会点击文本)时不会触发吗?

谢谢!

对我有效的解决方案(感谢@nekaab!):

将el.target更改为el.currentTarget,因此导航功能将如下所示:

navigate: function (el)
{        
    Backbone.history.navigate($(el.currentTarget).attr('href'), true);
    return false;
}

希望这会有所帮助:)-再次感谢您的回答!

关于:

events: {
    'click a, click a i': 'navigate'
}

试试这个

events: {
    'click .btn': 'navigate'
},