首页 > 解决方案 > 如何在函数调用模式中使用“this”关键字?

问题描述

我不明白如何在我的函数调用中使用“this”。我有一个函数声明,在 .ready() 中调用,但不在对象上。我正在尝试直接在带有“.btn_toggle”类的按钮旁边切换 div 的可见性。但只有按下的按钮旁边的 div 。并非所有具有“.btn_toggle”类的元素旁边的所有 div。大多数关于主题的答案/参考都与对象上的函数调用有关,我没有这样做

我所尝试的包括监听任何带有“.btn_toggle”类的按钮的点击。并使用 jquery 的 .next() 定位下一个元素。它可以工作,但将所有 div 切换到“.btn_toggle”旁边。

jQuery ( document ).ready( function ( $ ) {

    toggleSubDiv(); 

});

function toggleSubDiv ( ) {
    var btn, target;

    btn = $( '.btn_toggle' );
    target = $( '.btn_toggle' ).next();

    // click listener on btn class 'btn_toggle'
    btn.click( function () {

    // toggle visibility
    target.toggle( );
    });
}

标签: javascriptjquery

解决方案


因为this将引用处理程序中的单击按钮,所以只需将其包装在 jQuery 中并调用.next它:

btn.click(function() {
  $(this).next().toggle();
});

推荐阅读