3

我正在升级到最新的 jQuery,我有大量的 js 文件需要更新。主要是 live() 事件到 on() 的转换(有数百个)

在 Sublime 文本中,我想知道如何使用正则表达式的查找和替换来实现以下目标。

查找(使用正则表达式选择类名):

$('.class-name').live('click'

用。。。来代替:

$('#content').on('click', '.class-name'

编辑:我的尝试看起来像这样,虽然我知道这不太正确......

寻找:

$('(.*?)').live('click'

用。。。来代替

$('#content').on('click', '$1'

有谁知道如何做到这一点?

4

2 回答 2

3

你基本上已经有了。您只需要转义 find 表达式中的特殊字符,如下所示:

寻找:\$\('(\..*?)'\)\.live\('click'

代替:$('#content').on('click', '$1'

.假设您只想将其应用于类定位器,我在类名捕获的开头添加了一个文字。

我不确定的一件事是您是否需要限制与类名表达式匹配的字符。如果是这样,只需将.字符替换为字符类(例如[\w-.]类名中的任何内容)即可。

于 2013-07-26T03:33:37.733 回答
1

您可以使用jQuery migrate. 将它包含在核心 jquery 文件之后。这样您就不会看到任何错误,例如Uncaught TypeError: Object [object Object] has no method 'live'

http://code.jquery.com/jquery-migrate-1.2.0.js

于 2013-07-25T23:54:02.267 回答