0

私はこれで何時間も立ち往生しています。コードに新たな目を向ける時が来たと思います。私はJavaScriptにかなり慣れていないので、確かにいくつかの詳細を見落としていた可能性があります。他の機能が正常に動作していることに注意してください。

テーブルに動的に行を作成していて、いくつかのセルにSELECT要素が含まれています。スクリプトは次のとおりです(問題が発生している部分のみ)。

case 2:
    newcell.innerHTML = "<select id='size" + pid + "' class='ad_size' \
                             onChange='updateSubtotal()'> \
                             <option value='0'>Full</option> \
                             <option value='1'>Half</option> \
                             <option value='2'>Quarter</option> \
                             <option value='3'>Eighth</option> \
                             <option value='4'>Directory</option> \
                         </select>";
    break;

そして、それが適切に呼び出されているかどうかをログに記録しようとしている基本的な関数:

function updateSubtotal() {
    console.log("size changed");
    return true;
}

私が最初にjQuery.changeでこれを実行しようとしましたが、それも機能していなかったことを追加すると、おそらく役に立ちます。

$(".ad_size").change(function(){
    console.log("size changed");
});

あなたが見ることができる愚かなエラーはありますか?

4

2 に答える 2

3

要素を動的に追加しているので、使用delegateしてイベント ハンドラーをアタッチしてみてください。

$('tableSelector').delegate('.ad_size', 'change', function(){
    console.log("size changed");
});

またはon、jQuery 1.7+ を使用している場合に使用します

$('tableSelector').on('change', '.ad_size', function(){
    console.log("size changed");
});
于 2012-05-17T22:51:32.357 に答える
0

試す:

 $(document).ready(function(){
       $(".ad_size").live('change',function(){
           console.log("size changed");
       });
    });
于 2012-05-17T22:50:07.227 に答える