我有以編程方式點擊.special
鏈接觸發的此代碼。如何在事件之外的jQuery中引用'this'?
$(document).ready(function(){$('.special').trigger('click');});
$(document).on('click', '.special', function(){
var url = $(this).attr('href');
// More code that might depend on $(this)
});
在on click
事件相同的代碼時以上用戶手動點擊其它鏈路也被觸發。所以,在頁腳的某個地方我也有這個代碼。
$('.manual').on('click', function() {
var url = $(this).attr('href');
// More code that might or might not depend on $(this)
});
我的問題是,我必須把相同的代碼在兩個地方(.manual
以及.special
鏈接)。爲了避免代碼重複,我用以下代碼替換了手動代碼並刪除了上述特殊事件。
$(document).on('click', '.manual,.special', function(){
var url = $(this).attr('href');
// More code that might depend on $(this)
});
但是,上述代碼停止工作在.special
鏈接。我的問題是,如果有某種方法,我可以將$(this)
引用稱爲外部函數。沿
function whenClicked() {
var url = $(this).attr('href');
// More code that might depend on $(this)
}
東西線和調用whenClicked
功能是這樣的:
$(document).on('click', '.special', function(){
whenClicked();
});
$('.manual').on('click', function() {
whenClicked();
});
雖然這將是比較理想的,如果我能以某種方式結合兩個.manual
和.special
作爲一個像我上面試過。
你問過把'this'作爲參數傳遞給函數嗎? – Script47
是的,我想。我所需要的是,代碼在這兩個鏈接上都能正常工作而不會發生重複。 –
你可以使用傳遞給它的回調函數。 – Script47