我在回调函数中有一个问题,我不明白为什么。
点击div后,文字正在按照我的意愿改变,但在第一次拍摄后它不再有效。
我的代码是:
<div id="2">message</div>
<div id="1">dfdfgdfgrr</div>
<script src="jquery.js"></script>
<script>
$(function () {
$('#2').toggle();
function test() {
$(document).on('click', '#1', function () {
$('#2').toggle(300, function() {
if($('#1').text('show')){
$('#1').text('hide');
}else{
$('#1').text('show');
}
});
});
}
test();
});
</script>
答案 0 :(得分:1)
if($('#1').text() === 'show'){
$('#1').text('hide');
}else{
$('#1').text('show');
}
答案 1 :(得分:1)
您使用$('#1').text("show")
代替$('#1').text() == "show"
$('#2').toggle();
function test() {
$(document).on('click', '#1', function () {
$('#2').toggle(300, function() {
if($('#1').text() == 'show'){
$('#1').text('hide');
}else{
$('#1').text('show');
}
});
});
}
test();
答案 2 :(得分:1)
其他解决方案是正确的,但第一次没有显示显示标签。
这是一个完整的解决方案:
$(function () {
$('#2').toggle();
function test() {
$(document).on('click', '#1', function () {
$('#2').toggle(300, function() {
if($('#1').text() == 'hide'){
$('#1').text('show');
}else{
$('#1').text('hide');
}
});
});
}
test();
$('#1').text('show');
});
尝试示例here
答案 3 :(得分:1)
$('#1').text(function(i, t) { return t == 'show' ? 'hide' : 'show' });