我有一個onclick
事件將一個$(this)
參數傳遞給一個函數。將參數傳遞給jQuery中的單擊事件
<tr class="myTr">
<td>
Han Solo
</td>
</tr>
<script>
$('body').on('click','.myTr',function(){
doSomething($(this));
});
</script>
現在,我想再添加一個步驟。我想顯示一個按鈕,點擊此按鈕後,應該調用doSomething()
。
<tr class="myTr">
<td>
Han Solo
</td>
</tr>
<button id="myBtn" style="display:none">Submit</button>
<script>
$('body').on('click','.myTr',function(){
$('#myBtn').show();
});
$('#myBtn').click(function(){
doSomething(???);
});
</script>
如何將$(this)
傳遞給第二次單擊事件?
我可以很容易的$(this)
存儲作爲按鈕的標籤,像這樣:
$('body').on('click','.myTr',function(){
$('#myBtn').attr('origin', $(this));
$('#myBtn').show();
});
$('#myBtn').click(function(){
var tr = $(this)attr('origin');
doSomething(tr);
});
但我不知道是否有解決這個更優雅的方式?
使用數據屬性,而不是attr的。 '$('#myBtn')。data('origin',$(this));'和'$(this).data('origin');' – epascarello
使用全局變量? – Roljhon
其他選項是解除綁定並重新綁定click事件,更新腳本以使用帶有閉包的變量。我會使用數據attr。 – epascarello