簡體   English   中英

在javascript / jQuery中將函數作為函數調用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM