簡體   English   中英

Jquery現場功能突然不起作用了

[英]Jquery live function suddenly not working anymore

我正在使用jQuery live()函數來檢測用戶何時按某些特殊鍵(箭頭等):

$('.TextBox1').live('keydown', function(e) {
    var keyCode = e.keyCode || e.which;
    if (keyCode == 40) {
        e.preventDefault();
        // ...
    }
});

它工作正常幾個月,突然昨天它停止工作,阻止它下面的每一行JS代碼執行。 我試圖用.keyup函數替換它,但這沒有幫助。 可能發生了什么?

我假設您已更新到最新版本的jQuery? live()自jQ1.7以來已被棄用,現在從1.9開始刪除。

相反,您應該使用帶有委托參數的on()

$(document).on('keydown', '.TextBox1', function(e) {
    var keyCode = e.keyCode || e.which;

    if (keyCode == 40) {
        e.preventDefault();
        //...
    }
});

請注意,為了獲得最佳性能,您應該將上面示例中的document替換為.TextBox1最接近的父元素,該元素在頁面加載后不會動態附加到DOM。

jQuery .live已被棄用。 雖然不是嚴格相同,但使用.on()對於您的示例,它看起來像:

$('body').on('keydown', '.TextBox1', function() {
    var keyCode = e.keyCode || e.which;
    if (keyCode == 40) {
        e.preventDefault();
        ...
    }
}

jQuery 1.9之后刪除了.live()

從現在開始你必須使用.on

.live()已在最新版本的jQuery 1.9中刪除。

您可以使用jQuery Migrate插件 ,或更改代碼以使用.on

.live在jQuery 1.9中刪除了。 如果你正在調用最新版本的jQuery,它將會破壞。

更改您的代碼以使用.on

使用jquery網站上提到的這個。 對於你的例子,它將是

$(document).on( "keydown", ".TextBox1", function() { });

從jQuery 1.7開始,不推薦使用.live()方法。 使用.on()附加事件處理程序。 舊版jQuery的用戶應該使用.delegate()而不是.live()。

有關實時的更多信息,請閱讀此內容

實際上已經在jq 1.9中刪除了,而不僅僅是已棄用! 您可以使用插件來兼容或更新您的代碼

.live()在jq 1.9中已棄用,因此您可以嘗試這樣做

$('.TextBox1').on('keydown', function() {
    var keyCode = e.keyCode || e.which;
    if (keyCode == 40) {
        e.preventDefault();
        ...
    }
}

你有沒有將jquery更新為1.7?

從jQuery 1.7開始,不推薦使用.live()方法。

使用.on()附加事件處理程序:

$('.TextBox1').on('keydown', text_box_key_down_function);

你也可以使用bind:

$('.TextBox1').bind('keydown',text_box_key_down_function);

當JQ 1.9發布時,.live被刪除了,所以我猜你已經將Jquery更新到了最新版本。

現在,嘗試:

$('.TextBox1').on('keydown', function() {
    var keyCode = e.keyCode || e.which;
    if (keyCode == 40) {
        e.preventDefault();
        ...
    }
}

在JQ 1.9中刪除了.live,但現在有了同時運行.live和.on的解決方案

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="http://code.jquery.com/jquery-1.11.1.js"></script>

有關Jquery遷移的更多信息

來自stackoverflow的羽毛信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM