2014-07-08 80 views
-2

我有下面這段代碼我試圖從點擊函數中獲取id,但是this.id現在可以在點擊函數內工作,我認爲是因爲直到點擊代碼纔會運行任何人都知道在每次循環運行時獲取id的方法?jquery點擊每個循環內的功能

$(html).each(function() { 
          if($(this).filter('.target').html()){ 
           window["button"+this.id] = { 
            text: "Edit "+$($(html).filter('#'+this.id).html()).filter('#A1').text(), 
            click: function() { 
             $('#2').html($($(html).filter('#'+this.id).html()).filter('#B2').text()); 
             var start = $($(html).filter('#'+this.id).html()).filter('#A1').text(); 
             $("#start").val(start); 
             var finish = $($(html).filter('#'+this.id).html()).filter('#A2').text(); 
             $("#finish").val(finish); 
             var breaktime = $($(html).filter('#'+this.id).html()).filter('#A3').text(); 
             $("#break").val(breaktime); 
             var grade = $($(html).filter('#'+this.id).html()).filter('#A4').text(); 
             $("#grade").val(grade); 
             var PM = $($(html).filter('#'+this.id).html()).filter('#A9').text(); 
             if(PM == '1') { $('#PM').prop('checked', true); }else{ $('#PM').prop('checked', false); } 
             var NS = $($(html).filter('#'+this.id).html()).filter('#NS').text(); 
             if(NS == '1') { $('#NS').prop('checked', true); }else{ $('#NS').prop('checked', false); } 
             var RDO = $($(html).filter('#'+this.id).html()).filter('#A12').text(); 
             if(RDO == '1') { $('#RDO').prop('checked', true); }else{ $('#RDO').prop('checked', false); } 
             var OrdHours = $($(html).filter('#'+this.id).html()).filter('#A5').text(); 
             $("#ordhrs").val(OrdHours); 
             var x150 = $($(html).filter('#'+this.id).html()).filter('#A11').text(); 
             $("#OTx150").val(x150); 
             var departmentID = $($(html).filter('#'+this.id).html()).filter('#A6').text(); 
             $("select#ChangeDeparment").val(departmentID); 
             total = $($(html).filter('#'+this.id).html()).filter('#A8').html(); 
             totalhrs = $($(html).filter('#'+this.id).html()).filter('#A7').html(); 
             $("#total").html(totalhrs +"<br />" +total); 
             adjustmentID = $($(html).filter('#'+this.id).html()).filter('#B1').text(); 
             no_adjustment = false; 
             $(this).dialog("close"); 
            } 
           } 
          newArray.push(window["button"+this.id]); 

          } 
         }); 

回答

1

將此定義一個變量來保持你的範圍

var self = this; 

下面

$(html).each(function() { 
var self = this; 

if ($(self).filter('.target').html()) { 
    window["button" + self.id] = { 
     text: "Edit " + $($(html).filter('#' + self.id).html()).filter('#A1').text(), 
     click: function() { 
      $('#2').html($($(html).filter('#' + self.id).html()).filter('#B2').text()); 
      var start = $($(html).filter('#' + self.id).html()).filter('#A1').text(); 
      $("#start").val(start); 
      var finish = $($(html).filter('#' + self.id).html()).filter('#A2').text(); 
      $("#finish").val(finish); 
      var breaktime = $($(html).filter('#' + self.id).html()).filter('#A3').text(); 
      $("#break").val(breaktime); 
      var grade = $($(html).filter('#' + self.id).html()).filter('#A4').text(); 
      $("#grade").val(grade); 
      var PM = $($(html).filter('#' + self.id).html()).filter('#A9').text(); 
      if (PM == '1') { 
       $('#PM').prop('checked', true); 
      } else { 
       $('#PM').prop('checked', false); 
      } 
      var NS = $($(html).filter('#' + self.id).html()).filter('#NS').text(); 
      if (NS == '1') { 
       $('#NS').prop('checked', true); 
      } else { 
       $('#NS').prop('checked', false); 
      } 
      var RDO = $($(html).filter('#' + self.id).html()).filter('#A12').text(); 
      if (RDO == '1') { 
       $('#RDO').prop('checked', true); 
      } else { 
       $('#RDO').prop('checked', false); 
      } 
      var OrdHours = $($(html).filter('#' + self.id).html()).filter('#A5').text(); 
      $("#ordhrs").val(OrdHours); 
      var x150 = $($(html).filter('#' + self.id).html()).filter('#A11').text(); 
      $("#OTx150").val(x150); 
      var departmentID = $($(html).filter('#' + self.id).html()).filter('#A6').text(); 
      $("select#ChangeDeparment").val(departmentID); 
      total = $($(html).filter('#' + self.id).html()).filter('#A8').html(); 
      totalhrs = $($(html).filter('#' + self.id).html()).filter('#A7').html(); 
      $("#total").html(totalhrs + "<br />" + total); 
      adjustmentID = $($(html).filter('#' + self.id).html()).filter('#B1').text(); 
      no_adjustment = false; 
      $(self).dialog("close"); 
     } 
    } 
    newArray.push(window["button" + self.id]); 

    } 
}); 
完整的例子