我创建了这个片段http://jsfiddle.net/PexkV/
<script>
var arc={};
arc.handler={
background_color:'#8DBC8F',
console_this: function(str){
alert('lets write this to the console ' + str + ' ' + this.background_color);
}
}
$(document).ready(function(){
$('.more-click-me').on('click', arc.handler.console_this('here'));
$('.more-click-me').on('click', function(){
arc.handler.console_this('blue');
});
});
</script>
<div class='more-click-me'>lets write this</div>
并且不确定为什么会自动调用第一个事件(示例中的“此处”)。看起来它应该只在响应点击时调用?我没有得到什么?如果我犯了一些非常愚蠢的语法问题,请提前抱歉。
提前致谢
最佳答案
因为您正在调用该函数并将其返回值传递给 .on()
。实现您想要实现的目标的最简单方法是将匿名函数传递给 .on()
,就像在第二个示例中所做的那样,然后调用您的 console_this
其内部功能:
$('.more-click-me').on('click', function () {
arc.handler.console_this('here');
});
这是一个updated fiddle .
关于javascript - 不确定为什么这个 jQuery 点击事件在这里被触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13176872/