2011-09-11 67 views
1

我在模糊和骨干点击事件中遇到了一些麻烦。我有一个视图(下面的代码),用按钮创建一个小搜索条目div。我弹出打开这个div并把重点放在输入字段。如果有人点击(模糊),我通知父视图关闭此视图。如果他们点击按钮,我会开始搜索。backbone.js点击和模糊事件

模糊行为工作正常,但是当我点击按钮时,我也得到一个模糊事件,无法获得点击事件。我有没有这种结构化的权利?

顺便说一句,其他一些职位已建议的事情,如添加定时器到div的情况下,在点击事件触发前被关闭。我可以完全评论这个关闭,但仍然只能得到模糊事件。这些只能以某种先到先得的方式一次点燃吗?

PB_SearchEntryView = Backbone.View.extend({ 
    template: _.template("<div id='searchEntry' class='searchEntry'><input id='part'></input><button id='findit'>Search</button></div>"), 
    events: { 
     "click button": "find", 
     "blur #part": "close" 
    }, 
    initialize: function(args) { 
     this.dad = args.dad; 
    }, 
    render: function(){ 
     $(this.el).html(this.template()); 
     return this; 
    }, 
    close: function(event){ this.dad.close(); }, 
    find: function() { 
     alert("Find!"); 
    } 
}); 
+3

您在“events”列表中绑定的事件由jquery处理,backbone提供回调方法并连接回调。建议先使用jquery做这项工作,然后你应该能够使它与骨干一起工作好吧 –

+0

是的,那就是诀窍。谢谢!基于这些信息,我发现这篇文章提供了最终线索如何使这项工作:http://forum.jquery.com/topic/click-blur – Greg

+0

你可以发布最后的线索是什么,以及它如何帮助你解决你的问题? – alxndr

回答

0

我不确定是什么问题,但这里是jsbin code