Jquery javascript ajax - 价格总不更新

时间:2012-12-21 21:43:59

标签: php javascript jquery ajax

所以我试图让下面的代码更新基于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\');',

我的问题是我的第一个代码块是什么问题,它阻止了以正确的方式计算价格以及如何纠正它?

2 个答案:

答案 0 :(得分:1)

' onclick','更改'应该点击更改'在代表中

编辑:" $(' #main_body li [data-pricefield =" special"]')。delegate(' li',& #39;更改',功能(e){当你跳出字段时实际工作 - 它会向它添加1美元。"

所以你应该:

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

也许检查

if(pricedef == undefined || pricedef == null){

答案 1 :(得分: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个事件,所以如果您想使用多个事件,那么您可以使用< / p>

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

此外,您可以使用on代替delegate

An ExampleRead more