繁体   English   中英

javascript / jquery-如何将对点击元素的引用传递给函数

[英]javascript / jquery - How do I pass a reference to my clicked element to my function

我目前有以下事件处理程序:

$('#mainc').on("click", "ul.sort_ul li, ul.cat_items li", leftsort_click);

然后,将调用leftsort_click函数,其功能如下:

function leftsort_click(event) {
     if (!$(this).hasClass('sort_cat')) {
     ....

所有这些工作都很好,麻烦的是我现在在整个商店都在调用此左排序单击功能,我需要某种方式来知道从何处调用它。

我的方法是向触发函数的元素添加just_clicked类。

因此,例如,我的下一页click事件将如下所示调用leftsort_click:

$('body').on("click", ".next_link", function(event) {
    event.preventDefault();
    if (!$(this).hasClass('disabled')) {
        var active_rps=$('.res_page_select.active a').html().trim();
        var new_rps =  parseInt(active_rps)+1;
        var new_rps_div = 'page_select_'+new_rps;
        $('#'+new_rps_div).addClass('just_clicked');
        var active_page = $('ul.sort_ul li.active, ul.cat_items li.active').attr('id');
        $('#'+ active_page).trigger('click');
    }
  });

现在解决问题,如何在保持对单击元素的引用(本)的同时从第一个事件处理程序调用函数。 这样我就可以做这样的事情:

$('#mainc').on("click", "ul.sort_ul li, ul.cat_items li", function(event){
    $(this).addClass('just_clicked');
    leftsort_click(this);
    });

当我执行上述操作时,对此(单击元素)的引用丢失了。

尝试这个:

$('#mainc').on("click", "ul.sort_ul li, ul.cat_items li", function(event){
    $(this).addClass('just_clicked');
    leftsort_click.call(this);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM