jquery中select事件绑定怎么获取不到$(this)?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
<select name="province"><option>请选择</option><option>请选择</option><option>请选择</option></select>
<select name="city"><option>请选择</option></select>
<select name="area"><option>请选择</option></select>
</body>
<script>
$('select[name="province"]').bind('change',fn());
function fn(){
console.log($(this));
}
</script>
</html>
控制台的结果window,而且我还没点击select,还没触发change就显示window,
请问问题出在哪,怎么才能正确获取this?
ps:把bind里面的fn(),改为fn,确实可以console出$(this),但是如果要在fn中传入参数怎么办?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
$('select[name="province"]').bind('change',fn());
改为
$('select[name="province"]').bind('change',fn);
你之前那个在bind时就运行了。。。
$('select[name="province"]').bind('change',fn); 把这里的()去掉就可以了。
你这个this指向window,因为你的外层环境就是window啊