我在numbers
div中有一些内容。当我点击numbers-clicker
时,数字123456789
的内容会保存到oldNumbers变量,内容会更改为987654321
,而opened
类会在{{numbers
上切换1}} div。当我再次点击numbers-clicker
时,我正在尝试恢复原始的oldNumbers,因此将123456789
恢复为numbers
div,而是使用987654321
覆盖oldNumbers。我们如何确保oldNumbers保留为numbers
div 123456789
的开头内容?
<div id="numbers-clicker">Clicker</div>
<div id="numbers">123456789</div>
$('#numbers-clicker').off('click').on('click',function(){
$this = $(this);
var oldNumbers = $('#numbers').html();
if(!$this.is('.opened')){
$('#numbers').html('987654321');
} else {
$('#numbers').html(oldNumbers);
}
$this.toggleClass('opened')
});
答案 0 :(得分:6)
您需要在回调之外声明oldNumbers
:
var oldNumbers = $('#numbers').html();
$('#numbers-clicker').off(...);
干杯
答案 1 :(得分:1)
您可以使用
将旧值存储为标记的属性 $('#numbers').attr('data-old-numbers', oldNumbers )
并用
进行检索 $('#numbers').attr('data-old-numbers')
答案 2 :(得分:0)
$('#numbers-clicker').data('txt', $('#numbers').text()).on('click', function() {
$('#numbers').html($(this).is('.opened') ? '987654321' : $(this).data('txt'));
$(this).toggleClass('opened')
});