簡體   English   中英

Jquery javascript ajax - 價格總不更新

[英]Jquery javascript ajax - price total not updating

所以我試圖讓下面的代碼與更新基於ajax onclick的價格一起工作:

$('#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');

我確實得到了返回值“1.00”,這實際上是在onclick命令中設置的:

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

我的問題是我的第一個代碼塊出了什么問題,這個代碼阻止了以正確的方式計算價格以及如何糾正它?

'onclick','change'應該是委托中的'click change'

編輯:“$('#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){

您正在使用

$('#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){
   // ...
});

jQuery和AFAIK中沒有onclick事件, li沒有change事件,所以如果你想使用多個事件,那么你可以使用

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

您也可以使用on代替delegate

一個例子閱讀更多

暫無
暫無

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

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