根据最后的Rails gem更新,我的jQuery v更新为1.9,这引发了关于我的.live()绑定的错误...
$('#tags.tab-pane.active #tag-list li span.myTag').live "click", (e) ->
现在错了.. 我试过了
$("#tags.tab-pane.active #tag-list li").on "click", "span.myTag", (e) ->
但也是错的......我该怎么用? “on”或“delegate”
答案 0 :(得分:3)
如果你追加一个元素,它原来不在dom中,但一旦被附加,下面适用
$('body').on('click','#tags.tab-pane.active #tag-list li', function(e){
//carry out function
});
答案 1 :(得分:2)
live已被弃用一段时间,不再受支持。您必须使用“on”http://api.jquery.com/on/
$("#tags.tab-pane.active #tag-list li").on("click", "span.myTag", (e) -//NOT WORKING
为了使其工作,当执行此代码时,“li”元素必须存在于dom中,以便事件可以绑定到它。
使用“on”进行实时使用的等效实现将是:
$(document).on('click','#tags.tab-pane.active #tag-list li span.myTag',function(){...})
你应该尝试使用“更好或更深的dom”选择器来绑定事件而不是文档,这样事件就不必每次都在dom上一直冒泡。请记住,绑定事件时,替换文档的选择器必须存在,否则它将无效。
如果您可以弄清楚如何在元素位于dom之后执行绑定事件的代码,那么您可以直接在元素上绑定事件:
$('#tags.tab-pane.active #tag-list li span.myTag').on('click',function(){})
相当于:
$('#tags.tab-pane.active #tag-list li span.myTag').click(function(){...})