1

我正在更新我的脚本,以便它们在 jQuery 1.9+ 中工作

live被删除,我必须将其转换为on语法。jQuery 文档中有一些示例。该文档给出:

$(selector).live(events, data, handler); // jQuery 1.3+
$(document).on(events, selector, data, handler); // jQuery 1.7

所以 $("a").live("click", handler)应该转换成$(document).on("click","a", handler)等等。

但是当我没有时如何转换selector?就我而言,这是在插件中。

$(this).live("click", handler)

这不起作用:

$(document).on("click",$(this), handler) 

- 编辑

我需要授权,所以bind不是解决方案。这是在插件中使用的,我的代码是

elem.live("click", handler), whereelem有时是选择器,有时是$(this). 我对此无能为力。

4

3 回答 3

0

我通过查看jQuery migrate 插件的源代码找到了答案

它正在寻找.context 属性。问题的答案是

$(document).on("click", $(this.context), handler) 
于 2014-09-04T20:29:00.297 回答
0

只需使用

$(this).on("click", handler);

或者

$(this).click(handler);
于 2013-08-07T11:42:11.500 回答
0

.on 方法可以如下使用:

$(document).on("click", function (e) {
    // handle the click
});

此外,在您拥有的代码中,$(this)将是文档本身,而不是您希望单击绑定到的内容。

于 2013-08-07T11:42:54.220 回答