0

したがって、私は以下のコードを取得して、ajaxonclickに基づいて価格を更新できるようにしようとしています。

$('#main_body li[data-pricefield="special"]').delegate('onclick','change', function(e)
{
    var temp = $(this).attr("id").split('_');
    var element_id = temp[1];

    var pricedef = $(this).data('pricedef');
    if(pricedef == null)
    {
        pricedef = 0;
    }

    $("#li_" + element_id).data("pricevalue",pricedef);
    calculate_total_payment();
});

これまでのところ、問題なく機能しているようです。コンソールに入力すると、次のようになります。

jQuery('#li_273').data('pricevalue');

onclickコマンドで実際に設定されている「1.00」の値が返されます。

'onclick' => 'jQuery(\'#li_273\').data(\'pricevalue\',\'1.00\');',

私の質問は、これが価格を正しい方法で計算するのを妨げている私の最初のコードブロックの何が問題になっているのか、そしてどのようにそれを修正するのですか?

4

2 に答える 2

1

デリゲートでは、「onclick」、「change」は「clickchange」である必要があります

編集: "$('#main_body li [data-pricefield =" special "]')。delegate('li'、'change'、function(e){実際には、フィールドからタブアウトすると機能します-$1を追加しますそれに。」

だからあなたは持っているべきです:

$('#main_body li[data-pricefield="special"]').on('li','click change', function(e) {

そしておそらくチェック

if(pricedef == undefined || pricedef == null){
于 2012-12-21T22:20:25.797 に答える
1

使用しています

$('#main_body li[data-pricefield="special"]').delegate('onclick','change', function(e){
   // ...
});

しかし、delegateの構文は.delegate( selector, eventType, handler(eventObject) )であり、この場合は次のように書く必要があります

$('#main_body').delegate('li[data-pricefield="special"]','click', function(e){
   // ...
});

onclickにイベントはなくjQuery、AFAIKにはイベントliがないchangeため、複数のイベントを使用する場合は、次を使用できます。

$('#main_body').delegate('li[data-pricefield="special"]','click another_event', function(e){
   // ...
});

onまた、の代わりに使用することもできますdelegate

続きを読む

于 2012-12-21T22:29:49.030 に答える