2012-10-22 62 views
0

如何使用.on加載事件多一次?使用jquery函數.on

var $CartContent = function(){ 
    $Handler = $('#cartHandler'); 
    if($Handler.length > 0){ 
     $Handler.load('cart/content', function(){ 
      $PercentField = $('#item-percent-field'); 
      $PercentField.val(0); 
      $('.percent-field').val(0); 
      $PercentField.on('keyup', function(){ 
       var $Value = parseInt($(this).val()); 
       $.each($('.percent-field'), function(index, value){ 
        var $Current = $(this).data('item'); 
        $.post('cart/content', { 
         id: $Current, 
         percent: $Value 
        }); 
       }); 
      }); 
     }); 
    } 
}; 

它工作很好只有一次。如何在每個keyup上使用參數啓動函數加載?

回答

2

您可以使用keyup功能:

$('#item-percent-field').keyup(function(){ 
    $('#cartHandler').load(... 
    ... 
}); 

但一定有一個快速的服務器,如果你想在每一個鍵上加載一個頁面。

關於整個問題,要告訴你想要做什麼並不容易。

首先幾句話:

  • 你真的想有一個名爲$CartContent功能?爲什麼?
  • 您不需要測試if($Handler.length > 0){如果爲空,則下面的行將不會執行任何操作
  • 您是否想每次更改每個百分比字段時發出一個請求?這就奇怪了
+0

和'on'方法有什麼問題? –

+0

沒有什麼不對,但是當你有一個帶ID的選擇器,並且沒有動態添加時,沒有理由採取長(和慢)路徑。 –

+0

$ PercentField.on('keyup',function(){});我需要使用.load $ Handler.load('cart/content')更新結果,因爲我的代碼沒有工作 – RDK

0

我只想移動$ PercentField功能完全出來,並切換到.live()方法,因爲#項%的場不會直到.load後創建完成

$(function(){ 
    $('#item-percent-field').live('keyup',function(){ 
     var $Value = parseInt($(this).val()); 
     $.each($('.percent-field'), function(index, value){ 
      var $Current = $(this).data('item'); 
      $.post('cart/content', { 
       id: $Current, 
       percent: $Value 
      }); 
     }); 
    }) 
    var $CartContent = function(){ 
     $Handler = $('#cartHandler'); 
     if($Handler.length > 0){ 
      $Handler.load('cart/content', function(){ 
       $PercentField = $('#item-percent-field'); 
       $PercentField.val(0); 
       $('.percent-field').val(0);; 
      }); 
     } 
    }); 
}); 
+0

.live已棄用 – RDK