如何将.live()转换为.on()

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将.live()转换为.on()相关的知识,希望对你有一定的参考价值。

我想摆脱"TypeError: $(...).live is not a function"错误。代码如下,我试过但无法修复它。

    $(".search-text input[data-default], .gdlr-comments-area input[data-default]").each(function() {
    var t = $(this).attr("data-default");
    $(this).val(t), $(this).live("blur", function() {
        "" == $(this).val() && $(this).val(t)
    }).live("focus", function() {
        $(this).val() == t && $(this).val("")
    })
答案

以下是与等效语句执行相同操作的新旧方法:

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

还有更多例子:

$( "a.offsite" ).live( "click", function() {
  alert( "Goodbye!" ); // jQuery 1.3+
});
$( document ).delegate( "a.offsite", "click", function() {
  alert( "Goodbye!" ); // jQuery 1.4.3+
});
$( document ).on( "click", "a.offsite", function() {
  alert( "Goodbye!" );  // jQuery 1.7+
});

以上是关于如何将.live()转换为.on()的主要内容,如果未能解决你的问题,请参考以下文章

如何将 iPhone-captured-video 转换为 HTTP Live Streaming 文件?

在创建VSCode片段时,如何将变量转换为title-case(如TitleCase)?

用 .on 替换已弃用的 .live [重复]

如何将活动转换为片段以在抽屉中使用

在代码片段中包含类型转换

将 livequery 转换为 live/delegate/?