簡體   English   中英

jQuery .live('click',function(){}); 不適用於iPad

[英]jQuery .live('click', function() {}); doesn't work for iPad

我有一些jQuery函數,當在<SELECT>字段中選擇新值時,這些函數會更新一些數字。 <SELECT>項目是由用戶動態添加的,因此這些函數使用.live()函數。 在Mozilla,Chrome和IE8中,一切按計划進行,但是當我嘗試訪問iPad上的頁面時,數字不再相應地更新。 我必須點擊 <SELECT>字段的號碼更新的時候 這是我的功能之一:

    // Update subtotal when .months is changed
    $(".months").live('click',function(){

        var pid = this.id.replace("months", "");
        var price = document.getElementById('row' + pid).className;
        updateSubtotal(pid, price);

    });

所有功能都包含在document.ready()塊中。 我嘗試過“點擊更改”,也嘗試過“更改”,但是它們在某些其他瀏覽器中存在問題。

感謝您提供的所有幫助!

iPad和某些選擇元素玩起來不太好。 如果您需要選定的值執行任何操作,則需要綁定以模糊

嘗試這樣的事情( .months應該是您的select元素):

// Update subtotal when .months is changed
$(".months").on('blur', function(){

    var pid = this.id.replace("months", "");
    var price = document.getElementById('row' + pid).className;
    updateSubtotal(pid, price);

   });

編輯
嘗試這個:

// Update subtotal when .months is changed
$(document).on('blur|click', ".months", function(){
    var pid = this.id.replace("months", "");
    var price = document.getElementById('row' + pid).className;
    updateSubtotal(pid, price);
    });

on()的好處是,您可以將其附加到元素上並從那里進行委托。 由於您的$(document)將始終存在,因此它還可以捕獲您動態添加到頁面中且從一開始就不存在的元素。 由於您的原始代碼實時使用,所以我希望元素可以動態加載或生成。 在這種情況下,為了使用on()將事件綁定到事件,您必須綁定到文檔委托任何即將到來的.months

如果您將一個空的onclick =“”添加到div(或span或其他任何東西),它將起作用....我不知道為什么:)

暫無
暫無

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

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