[英]Calling a function as a function in javascript/jQuery
我想知道下面重復的最快方法是什么,或者在名稱下面給出這個“函數”,以便我可以在同一文檔中的另一個函數中調用它 - > runThisFunction();
碼:
$('body').on("click", ".manufacturer_details_link", function (e) {
e.preventDefault();
var self = $(this);
var id = self.data("id");
var url = $("#manufacturers_table").data("infourl");
var data_array = {
id : id
};
ajaxCall(url, data_array, "rhs_info");
});
如果我理解一切正確:
function bodyOnClick( e, optionalId ) {
var nodeRef = optionalId ? document.getElementById( optionalId ) : this;
if( typeof e === 'object' )
e.preventDefault();
var self = $(this);
var id = nodeRef.data("id");
var url = $("#manufacturers_table").data("infourl");
var data_array = {
id : id
};
ajaxCall(url, data_array, "rhs_info");
}
// ---
$('body').on("click", ".manufacturer_details_link", bodyOnClick );
// ---
bodyOnClick( 'someNodeID' );
但實際上,調用
bodyOnClick
plain並沒有多大意義,因為
this
不會引用任何
HTMLElement 。
因此,只有在其他事件處理程序上重用該方法或顯式調用它時才有意義
bodyOnClick.call( someNodeReference );
你的意思是這樣的?
function someFunction(e){
e.preventDefault();
var id = $(this).data("id"),
url = $("#manufacturers_table").data("infourl"),
data_array = {id: id};
ajaxCall(url, data_array, "rhs_info");
}
//$('.manufacturer_details_link').click(someFunction);
// changed, per feedback
$('.manufacturer_details_link').on('click', someFunction);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.