2013-02-25 60 views
2

我正在开发一个使用jQuery Mobile和Backbone的应用程序。 click .check : toggleDone事件未被解雇。我不知道原因。请致电 帮忙。jquery中无法触发复选框事件Mobile backbone

var requestItemView = Backbone.View.extend({ 
tagName: "label", 
template : $("#requestItemTemplate").html(), 
events : { 
    "click .check" : "toggleDone", 
}, 
toggleDone: function() { 
    console.log("clcik"); 
    this.model.toggle(); 
}, 
initialize: function() { 
    console.log("requestItemInit"); 
}, 
render: function() { 
    var tmpl = _.template(this.template); 
    $(this.el).html(tmpl(this.model.toJSON()));  
    return this; 
}}); 

这是我相同的观点

<script type='text/template' id='requestItemTemplate'> 
<label> 
    <input type="checkbox" class = "check" 
    <%= done ? 'checked="checked"' : '' %> data-theme="e"> 
    <%= requestorName%> :: <%=requestorEmailId%> : <%= requestorContactNo%> 
    </input> 
</label> 
</script> 
+0

尝试使用'append',而不是'html'。阅读这一点的背景:http://tbranyen.com/post/missing-jquery-events-while-rendering – neebz 2013-02-25 11:10:01

+0

没有'append'也没有帮助。 我认为,视图的事件没有被正确绑定。虽然我无法确切的原因。 我使用trigger('create')和'append'来维护我的jqueryMobile样式。 – 2013-02-25 12:03:34

+0

我围绕一个'

回答

1

,则不应使用click模板 - 在至少300ms以内等待消防click事件,因为它试图决定以解雇移动Safari浏览器clickdblclick

您应该尝试聆听touchend

(脊柱specifically has info周围不使用click

+0

Thx分享知识。听起来像是我应该牢记的一个问题。 – 2013-08-07 06:44:05