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

时间:2017-09-27 23:19:19

标签: javascript jquery dom

我想摆脱"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("")
    })

1 个答案:

答案 0 :(得分:1)

以下是与等效语句做同样事情的新旧方法:

$( 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+
});