2016-11-23 104 views
0

下面的jQuery代碼片段工作正常。我想知道如何將它編寫爲接受table1作爲參數的函數,以便我可以在代碼的其他部分重用此函數。對於例如如果我有表ID表2,而不是增加新的功能,我應該重新使用現有的一個如何編寫函數併爲jQuery函數傳遞參數

$(document).ready(function(){  
    $("#table1").on('click','.btnDelete',function(){ 
     $(this).closest('tr').remove(); 
    }); 
}); 
+1

寫清楚選擇。沒有必要爲類似事件註冊更多功能 –

回答

3

有許多方法以某種方式

$("[id^=table]").on('click','.btnDelete',function(){ 
     $(this).closest('tr').remove(); 
    }); 
0

處理使用屬性選擇這很容易,只要命名功能,使用它,無論你想

$(document).ready(function() {  
    var deleteAction = function() { 
    $(this).closest('tr').remove(); 
    }; 
    $("#table1").on('click', '.btnDelete', deleteAction); 
    $("#table2").on('click', '.btnDelete', deleteAction); 
    $(".btnDelete").on('click', deleteAction); 
    // etc etc. 
}); 
0
$(document).ready(function(){  
     $("#table1").on('click','.btnDelete',function(){ 
     RemoveRow($(this)); 
     }); 

     function RemoveRow(table){ 
     $(table).closest('tr').remove(); 
     } 

    }); 
0

$("#table1,#table2,#table3").on('click', '.btnDelete', function() { 
 
    $(this).closest('tr').remove(); 
 
});

$("[id^=table]").on('click', '.btnDelete', function() { 
 
    $(this).closest('tr').remove(); 
 
});

1

採取不同的方式和分配行爲類,如:

$(".table-with-removable-rows").on('click','.btnDelete',function(){ 
    $(this).closest('tr').remove(); 
}); 

那麼每當你想要的這種行爲,您添加類,如:

<table class="table-with-removable-rows">... 

這種方式有:

  • 無需更改任何代碼
  • 它不會影響每個表格,只有您將其設置爲
  • 你不需要格式化id來觸發行爲
  • 的行爲是基於該HTML
+1

我喜歡這種方法 – user1965773