Php Jquery javascript ajax-价格总计未更新

Php Jquery javascript ajax-价格总计未更新,php,javascript,jquery,ajax,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(

因此,我试图让下面的代码基于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”])。委托('li','change',函数(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(选择器、事件类型、处理程序(事件对象))
,在这种情况下,您应该编写

$('#main_body').delegate('li[data-pricefield="special"]','click', function(e){
   // ...
});
jQuery
中没有
onclick
事件,而且一个
li
没有
change
事件,因此如果要使用多个事件,则可以使用

$('#main_body').delegate('li[data-pricefield="special"]','click another_event', function(e){
   // ...
});
您也可以在上使用
,而不是
委托


和。

两个问题:1)你确定你的委托函数正在启动吗?2)你在哪里设置
pricedef
?当你说什么阻止它计算“正确的方式”-它实际上在做什么是错误的?你需要指定一个选择器
。委托('onclick'
@Kyle-开始标记:
  • 我如何确定代理是否被解雇?Ben-价格应该在jQuery 1.7的主页上更新,.delegate()已被.on()取代方法。我可能会用一些标记得到更好的答案,但我猜是位这可能是我猜到的您的标记,并且这个选择器可能是
    $(“#main_body”)的更好挂钩。在('li[data pricefield=“special”]”,
    上,我唯一能想到的是如果他触发了自定义的“change”和“onclick”"事件……但考虑到其余部分,这似乎不太可能。@MarkSchultheiss,谢谢!是的,可能是这样,但在这种情况下,多个事件应该放在第二个参数中,并用一个空格在旁边引号中分隔。@Sheikh-非常感谢-这似乎解决了问题。虽然事情仍然是按价格进行硬编码的,但它正在添加价格与总价的比例正确!再次感谢!有没有可能在该事件发生时更新另一个显示值为1的字段(文本框)?