jquery – 在函数中使用’$(this)’

前端之家收集整理的这篇文章主要介绍了jquery – 在函数中使用’$(this)’前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在创建一个使用jQuery打开和关闭菜单.简单来说,它的工作原理如下:
function open_menu() {
    $(this).next('ul.sub-menu').css('display','block').stop(true,false).animate({
        width: '235px',},500);
}

function close_menu() {
    // close code here
}

status = 'closed'; // set the default menu status

$('a').click(function() {
    switch(status) {
        case 'closed':
            open_menu();
            break;
        case 'open':
            close_menu();
            break;
    }
}

如果我把open_menu()的内容放在.click()事件中的open_menu()中),那么每个都按预期的方式工作.如果我使用上面的代码,$(this)无法确定.click()触发它,代码不运行.

有没有什么可以让$(这个)选择器协商什么是将其保存在open_menu()中?

解决方法

您在open_menu中引用的是open_menu函数的上下文,而不是链接的点击处理程序.你需要这样做:
open_menu(this);

function open_menu(that) {
    $(that).next(...

猜你在找的jQuery相关文章