如何在函数调用模式中使用“ this”关键字?

时间:2019-02-01 23:51:04

标签: javascript jquery

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

我尝试的内容包括侦听类'.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( );
    });
}

1 个答案:

答案 0 :(得分:2)

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

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