单击按钮上的Icon-Font-Icon(有时是文本)时,Backbone.js事件不会触发

时间:2013-08-28 10:59:29

标签: javascript jquery events twitter-bootstrap backbone.js

单击带有图标字体的按钮(如图标)时,我的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>

您是否知道为什么在单击按钮的边框,填充和可用空间时会触发这些事件,但在单击图标时(有时在文本上)不会触发?

谢谢!

3 个答案:

答案 0 :(得分:3)

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

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

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

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

答案 1 :(得分:1)

怎么样:

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

答案 2 :(得分:0)

尝试这个

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