请,帮助修复的bug:代码快讯目前不确定的,而不是按钮的内部内容警报按钮的内部内容
function registerClickHandler() {
$('#clickme').click(function() {
setTimeout(function() {
alert(this.innerHTML);
}, 200);
});
}
请,帮助修复的bug:代码快讯目前不确定的,而不是按钮的内部内容警报按钮的内部内容
function registerClickHandler() {
$('#clickme').click(function() {
setTimeout(function() {
alert(this.innerHTML);
}, 200);
});
}
this
超时处理程序内是没有按钮
function registerClickHandler() {
$('#clickme').click(function (e) {
setTimeout(function() {
alert(e.currentTarget.innerHTML);
}, 200);
});
}
尝试在setTimeout之前获取值
function registerClickHandler() {
$('#clickme').click(function() {
var value=this.innerHTML;
setTimeout(function() {
alert(value);
}, 200);
});
}
尝试将单击事件处理呃在功能之外。在调用setTimout之前,还要将'this'的值传递给变量。稍后在setTimout中使用这个变量。了解更多关于Javascrpt原型here
$(document).ready(function(){
$('#clickme').click(function() {
var me = this;
setTimeout(function() {
alert(me.innerHTML);
}, 200);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="clickme">click me</div>
在Java脚本this
指向最后一个功能,里面的超时处理程序不是按钮,这就是为什么你所得到的错误。
而且它是一个很好的做法实现这种功能或onclicks使用on.('click', function(){...})
下面你可以看到我的例子:
$(document).ready(function(){
$('#clickme').on('click', function (e) {
setTimeout(function() {
alert(e.currentTarget.innerHTML);
}, 200);
});
});
你可以看看,在这里运行:http://jsfiddle.net/gon250/6qwk0g1t/1/
这是因为setTimeout函数现在已经失去了'this'的范围,请尝试将你正在尝试引用的内容传递给function()参数中的setTimeout函数。 – 2015-03-13 09:09:19
这是一个招聘考试的问题。 – Jazz 2016-07-13 12:10:36