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

时间:2012-12-02 14:05:48

标签: 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);
    });

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

1 个答案:

答案 0 :(得分:1)

试试这个:

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