2013-03-21 62 views
0

我有以下代碼:變化要素類,然後再次單擊並改回正常

for (var i=0; i<len; i++){ 
     var benID = results.rows.item(i).ID; 
     $('#'+element_id).append(
            "<li><a>"+results.rows.item(i).nombres+" "+results.rows.item(i).apellidos+'</a>'+ 
            '<a href="#" data-position-to="window" data-icon="check" class="'+page+'_dis_ben_'+benID+'">Eliminar</a></li>'); 
     $("."+page+"_dis_ben_"+benID).click(function(){ 
      console.log("Item to disable: "+benID); 
      $(this).children('span.ui-btn-inner').children('span.ui-btn-icon-notext').children('span.ui-btn-inner').children('span.ui-icon').removeClass('ui-icon-check'); 
      $(this).children('span.ui-btn-inner').children('span.ui-btn-icon-notext').children('span.ui-btn-inner').children('span.ui-icon').addClass('ui-icon-delete'); 
      $(this).children('span.ui-btn-inner').children('span.ui-btn-icon-notext').children('span.ui-btn-inner').addClass('ui-btn-inner-red'); 
      $(this).removeClass(page+"_dis_ben_"+benID).addClass(page+"_enable_ben_"+benID); 
     }); 

     $("."+page+"_enable_ben_"+benID).click(function(){ 
      //NOT WORKING 
      console.log("Item to enable: "+benID); 
      $(this).children('span.ui-btn-inner').children('span.ui-btn-icon-notext').children('span.ui-btn-inner').children('span.ui-icon').removeClass('ui-icon-delete'); 
      $(this).children('span.ui-btn-inner').children('span.ui-btn-icon-notext').children('span.ui-btn-inner').children('span.ui-icon').addClass('ui-icon-check'); 
      $(this).children('span.ui-btn-inner').children('span.ui-btn-icon-notext').children('span.ui-btn-inner').removeClass('ui-btn-inner-red'); 
      $(this).removeClass(page+"_enable_ben_"+benID).addClass(page+"_dis_ben_"+benID); 
     }); 
} 

我有一個一分爲二的列表,右側是一個按鈕,接受或拒絕。我試圖做的是點擊時的檢查按鈕改變顏色並變成刪除按鈕,也執行一個動作。我已經成功了。

現在第二個問題是我想讓它回到一個檢查按鈕,但是因爲它是動態創建的,所以當我單擊「刪除」圖標或* _enable_ben_ *時它不會觸發。我認爲這是因爲當我創建事件類/元素還不存在。

你有什麼想法嗎?

回答

1

使用。對 http://api.jquery.com/on/

var selector = "."+page+"_enable_ben_"+benID; 

$("#yourList").on("click", selector, function(event){ 
    //Insert handler code 
}); 
+0

大奏效!謝謝! – galgo 2013-03-21 23:58:19

+0

因爲我有一個for循環它只讀取我添加的最後一個項目,雖然我在for循環中設置了點擊。有任何想法嗎? – galgo 2013-03-22 20:28:19

相關問題