2012-03-28 52 views
0

我正确地认为这应该工作吗?Jquery .span刷新onclick

我有这个jQuery:

<script> 
    $(function() { 
     $(".wpsc_buy_button").click(function(evt) { 
     $(".counter").load("index.php") 
     evt.preventDefault(); 
     }) 
    }) 
</script> 

这.span:

<span class="counter">    
    <?php 
     $i = 0; 
     while(wpsc_have_cart_items()): wpsc_the_cart_item(); 
    ?> 
    <?php $i += wpsc_cart_item_quantity(); ?> 
    <?php endwhile; ?> 
    <?php print $i ?> 
</span> 

,这个按钮:

<input type="submit" value="Add To Cart" name="Buy" class="wpsc_buy_button" id="product_16_submit_button"/> 
+1

是,将工作 - 我想补充一个';'的'load'线完整性......结束时,如果它不工作,什么是你期待它要做什么? – ManseUK 2012-03-28 14:34:02

+0

我想在点击提交按钮时刷新span.counter。虽然似乎不适合我。 – bskool 2012-03-28 14:37:32

+0

你的代码会覆盖'counter'的内容,看起来好像你向服务器发送任何东西..看看'get()'或'post()' – ManseUK 2012-03-28 14:38:32

回答

0

您可以更改代码以这种方式工作:

<script> 
    $(function() { 
     $(".wpsc_buy_button").click(function(evt) { 
     $.get("index.php", function(){ 
      var current = parseInt($.trim($(".counter").text())); 
      $(".counter").text(current+1); 
     }); 
     evt.preventDefault(); 
     }) 
    }) 
</script> 

已更新

您正在努力做到这一点。这里是你应该做的方式: 找到文件http://tobyclothing.com/wp-content/plugins/wp-e-commerce/wpsc-core/js/wp-e-commerce.js?ver=3.8.7.6.2.494864,发现这些行(行248 - 257)

  jQuery.post('index.php?ajax=true', form_values, function(returned_data) { 
       eval(returned_data); 
       jQuery('div.wpsc_loading_animation').css('visibility', 'hidden'); 

       if(jQuery('#fancy_notification') != null) { 
        jQuery('#loading_animation').css("display", 'none'); 
       //jQuery('#fancy_notificationimage').css("display", 'none'); 
       } 
    // add your NEW_CODE here 
      }); 

你NEW_CODE将是:

var current = parseInt($.trim($(".counter").text())); 
    $(".counter").text(current+1); 

那么这将导致:

 jQuery.post('index.php?ajax=true', form_values, function(returned_data) { 
      eval(returned_data); 
      jQuery('div.wpsc_loading_animation').css('visibility', 'hidden'); 

      if(jQuery('#fancy_notification') != null) { 
       jQuery('#loading_animation').css("display", 'none'); 
      //jQuery('#fancy_notificationimage').css("display", 'none'); 
      } 
var current = parseInt($.trim($(".counter").text())); 
$(".counter").text(current+1); 
     }); 

UPDATE 2

如果用户输入的任何数量的生化的的

var qty = parseInt(jQuery("input[name='wpsc_quantity_update']").val()); 
      jQuery.post('index.php?ajax=true', form_values, function(returned_data) { 
       eval(returned_data); 
       jQuery('div.wpsc_loading_animation').css('visibility', 'hidden'); 

       if(jQuery('#fancy_notification') != null) { 
        jQuery('#loading_animation').css("display", 'none'); 
       //jQuery('#fancy_notificationimage').css("display", 'none'); 
       } 
    var current = parseInt(jQuery.trim(jQuery(".counter").text())); 
    jQuery(".counter").text(current+qty); 
      }); 
+0

跟着你发布的URL,我深入了解代码,并找到了如何做到这一点。请检查更新后的答案。问候。 – safrazik 2012-03-28 16:39:35

+0

再次感谢,但仍然没有做任何事情。 – bskool 2012-03-28 16:49:28

+0

你可以用''jQuery''代替''$''并尝试吗? - 'var current = parseInt(jQuery.trim(jQuery(“。counter”)。text())); jQuery(“。counter”).text(current + 1);' – safrazik 2012-03-28 16:54:45