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

标签 javascript jquery

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

$('#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 类。

例如,我的下一页点击事件会像这样调用 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');
    }
  });

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

$('#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);
});

关于javascript/jquery - 如何将对我单击的元素的引用传递给我的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13670015/

相关文章:

Javascript/Firestore : Uncaught (in promise) TypeError: firebase. firestore(...).collection(...).doc(...).collection(...).set 不是函数

javascript - 在 $http.post 方法中复制数组

jquery - div 内的垂直对齐跨度 @ 100% 高度和悬停时的固定宽度(包括示例)

javascript - 如何将 JavaScript 函数的输出用作 HTML 文本区域框中的字符串?

javascript - 按索引位置解析json对象数组

javascript - JQueryStatic 类型上不存在属性

javascript - 在 Javascript 中查找一维数组中最小值和最大值之间的值

javascript - 打开相对于用户位置的弹出窗口

javascript - AJAX 和 JavaScript

javascript - 查找隐藏的父元素 jQuery