[英]Alert button's inner content after clicking it
请帮助修复错误:当前代码未定义警报而不是按钮的内部内容
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);
});
}
在Java脚本中, this
指向最后一个函数,并且在超时处理程序中不是按钮,这就是为什么出现错误的原因。
同样,使用on.('click', function(){...})
实现这种功能或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/
尝试将click事件处理程序放在函数外部。 还要在调用setTimout之前将“ this”的值传递给变量。 稍后在setTimout中使用此变量。 在此处阅读有关Javascrpt原型的更多信息
$(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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.