单击警报按钮后的内部内容
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);
});
}
尝试将点击事件处理程序放在函数之外。在调用 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
指向最后一个函数并且超时处理程序内部不是按钮,这就是您收到错误的原因。
此外,使用 on.('click', function(){...})
实现此类功能或点击也是一个好习惯
下面你可以看到我的例子:
$(document).ready(function(){
$('#clickme').on('click', function (e) {
setTimeout(function() {
alert(e.currentTarget.innerHTML);
}, 200);
});
});
你可以在这里 运行 看一看:http://jsfiddle.net/gon250/6qwk0g1t/1/
请帮助修复错误:代码当前警告未定义而不是按钮的内部内容
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
指向最后一个函数并且超时处理程序内部不是按钮,这就是您收到错误的原因。
此外,使用 on.('click', function(){...})
下面你可以看到我的例子:
$(document).ready(function(){
$('#clickme').on('click', function (e) {
setTimeout(function() {
alert(e.currentTarget.innerHTML);
}, 200);
});
});
你可以在这里 运行 看一看:http://jsfiddle.net/gon250/6qwk0g1t/1/