0

フィールドで新しい値が選択されたときにいくつかの数値を更新するjQuery関数がいくつかあり<SELECT>ます。アイテムはユーザーによって動的に追加される<SELECT>ため、これらの関数は.live()関数を使用します。Mozilla、Chrome、IE8ではすべてが計画どおりに進んでいますが、iPadでページにアクセスしようとすると、それに応じて番号が更新されなくなります。数値を更新するには、フィールドをもう一度クリックする必要があります。これが私の機能の1つです:<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()ブロック内に含まれています。「クリック変更」と「変更」だけを試しましたが、他のブラウザで問題が発生します。

助けてくれてありがとう!

4

2 に答える 2

3

iPadと一部の要素はあまりうまく機能しません。何かをするために選択した値が必要な場合は、ぼかしにバインドする必要があります。

次のようなものを試してください(.monthsを選択要素にする必要があります):

// 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()の良いところは、要素にアタッチしてそこから委任できることです。$(ドキュメント)は常に存在するため、ページに動的に追加した、最初から存在しない要素をキャッチすることもできます。元のコードはライブで使用されていたので、要素が動的にロードまたは生成されることを期待しています。その場合、on()を使用してイベントをイベントにバインドするには、ドキュメントにバインドし、今後の.months委任する必要があります。

于 2012-05-28T23:27:24.353 に答える
0

空のonclick=""をdiv(またはspanなど)に追加すると、機能します...理由はわかりません:)

于 2013-03-21T15:13:45.080 に答える