您的位置:首页 > Web前端 > JavaScript

引用 1.9.1.min.js dom对象 没有live 绑定事件方法, 引用 1.7.js 就有live 绑定事件方法

2014-05-12 22:28 579 查看
问题:
相同环境,引用 1.9.1.min.js
$('div[data-role="page"]').live('pagehide', function (event, ui) {
$(event.currentTarget).remove();
});
这个报错,提示 Uncaught TypeError: Object [object Object] has no method 'live'
而引用1.7就不会。
谁能解释一下,一般都是高版本兼容低版的。还是我下载的1.9.1.min.js  有问题。谁能提供一个没有这个BUG 1.9.1.min.js  文件。(我1.9.1.min.js 是在官网下载的)

解答:

这并不是 jQuery 的 bug。jQuery 1.9 较之前的版本做了很大的调整,很多函数都不被支持。

例如 live(),die(),toggle(),sub(),$.browser 等等都已经被移除,完整的更新内容见 http://jquery.com/upgrade-guide/1.9/ (英文)。

在不改变你网站代码的同时,要使用 1.9 之后的版本,你需要使用 jQuery Migrate(转移、过度),详见 http://blog.jquery.com/2013/01/31/jquery-migrate-1-1-0-released/ (英文)。

Migrate 应该只是暂时性的。为了和 jQuery 保持同步,建议你从现在开始根据 1.9 的改变重写你网站的所有代码。

所以之前你的代码如果是

$("#ele").live("click", function() {
//...
});

现在要写成

$("#ele").on("click", function() {
//...
});

动态生成的元素要使用 live,要写成

$(document).on("click", "#ele", function() {
//...
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: