![](/img/trans.png)
[英]How to do something everytime a certain element is in view using jQuery?
[英]Should the same element be selected using jQuery everytime a Backbone View is rendered
是否有必要選擇相同的DOM元素並對每個呈現的Backbone View進行一些處理? 任何時候僅存在一個此視圖。
例如,必須在特定的主干View Product
上使用Bootstrap的Tabs(可插拔的插件)。 將Tabbable插件的初始化代碼包含在render
函數中是否正確?
render: function() {
this.$el.html( this.template( this.model.toJSON() ) );
// Activate Twitter Bootstrap Tabs
$('.tab-bar').tab();
$('.tab-bar .tab:first').tab('show');
$('.tab-bar .tab').click(function(e) {
e.preventDefault();
$(this).tab('show'); });
return this;
}
或者有沒有辦法只調用一次此選擇器,它將為所有.tab-bar
類的元素(包括尚未存在的元素) .tab-bar
。
同樣,如果我想要第一個標簽上的點擊處理程序
$('.tab:first').click(function(){
console.log('hey!')'
}
如何將其放置在該視圖的render
函數中? 如果我這樣做,如果多次渲染視圖,是否會創建許多click
事件偵聽器?
您需要在initialize方法(而不是在render中)中綁定事件偵聽器。 除非您要重新渲染DOM元素不止一次。
編輯
window.myView = Backbone.View.extend({
events: {
'click #someElementID': 'do_something',
},
initialize: function(){
_.bindAll(this, 'render', 'do_something');
},
.....
do_something: function(e){
console.log("A click was made!", e.currentTarget);
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.