jQuery中live()使用报错,TypeError: $(...).live is not a function

原博文#

https://blog.csdn.net/sdfdyubo/article/details/59536781

使用#

原写法#

复制代码
/*为选项卡绑定右键*/
$(".tabs li").live('contextmenu',
function(e) {
    /*选中当前触发事件的选项卡 */
    var subtitle = $(this).text();
    $('#mainTab').tabs('select', subtitle);
    //显示快捷菜单
    $('#tab_menu').menu('show', {
        left: e.pageX,
        top: e.pageY
    });
    return false;
});
复制代码

调整后的写法#

复制代码
/*为选项卡绑定右键*/
$(".tabs").on("contextmenu", "li",
function(e) {
    /*选中当前触发事件的选项卡 */
    var subtitle = $(this).text();
    $('#mainTab').tabs('select', subtitle);
    //显示快捷菜单
    $('#tab_menu').menu('show', {
        left: e.pageX,
        top: e.pageY
    });
    return false;
});
复制代码

说明#

jquery中的live()方法在jquery1.9及以上的版本中已被废弃了,如果使用,会抛出TypeError: $(...).live is not a function错误。

解决办法#

复制代码
//之前的用法:

.live(events, function)  

//新方法:

.on(eventType, selector, function)

//若selector不需要,可传入null
复制代码

例子1#

//之前:

$('#mainmenu a').live('click', function)

//之后:

$('#mainmenu').on('click', 'a', function)

例子2 #

复制代码
//之前:

$('.myButton').live('click', function)

//之后(应使用距离myButton最近的节点):

$('#parentElement').on('click', ‘.myButton’, function)

//若不知最近的节点,可使用如下的方法:

$('body').on('click', ‘.myButton’, function)
复制代码

 

posted @   我有我奥妙  阅读(5404)  评论(3编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示
CONTENTS