javascript - 如何在函数调用模式中使用“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( );
});
}
解决方案
因为this
将引用处理程序中的单击按钮,所以只需将其包装在 jQuery 中并调用.next
它:
btn.click(function() {
$(this).next().toggle();
});
推荐阅读
- python - 使用逻辑回归的 p 值的 NaN
- vb.net - 意外的 TableLayoutPanel 行为
- build - Nix:构建“waf”会生成一个文件,但我似乎需要一个文件夹
- php - Laravel 部署脚本会是什么样子?
- android - 使用导航库销毁片段/触发器 onDestroy 的实例
- sql-server - Liquibase gradle 插件不工作 Spring Boot SQL 服务器
- php - 使用 Array_push 将元素数据添加到 JSON 文件
- git - 将分支的祖先提交合并回 HEAD
- laravel - ajax在json中的输入数组在laravel中无法正常工作
- javascript - 我收到 Unhandled Rejection (TypeError): Cannot read property 'temp' of undefined 尝试使用 openweatherapi 构建反应应用程序时