0

我想知道下面重复或在名称下方给这个“函数”命名的最快方法是什么,以便我可以在同一文档的另一个函数中调用它->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");

            }); 
4

2 回答 2

2

如果我理解一切正确:

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' );

但实际上,调用bodyOnClickplain 没有多大意义,因为this不会引用任何HTMLElement。因此,只有在其他事件处理程序上重新使用该方法或显式调用它时才有意义

bodyOnClick.call( someNodeReference );

于 2013-06-22T00:41:27.743 回答
0

你的意思是这样吗?

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);
于 2013-06-22T00:41:56.833 回答