希望有人可以帮助我完成下一个挑战。以下脚本与我的HTML一起使用,当我单击一个展开的标题时,它会打开和关闭。我还调用了一个警报函数,它显示扩展标题的文本。这很有效。
我想要做的是使警报只能显示一次,然后对已经点击的扩展器标题的任何后续点击都会阻止警报显示。
这是我正在使用的Jquery代码...
somesite.ca = {
init: function() {
$('.qa-set')
.find('.answer')
.addClass('hide')
.end()
.find('h3')
.addClass('collapsed')
.bind('click', this.click);
$('#expand').bind('click', this.expandAll);
$('#collapse').bind('click', this.collapseAll);
},
click: function(){
$(this)
.toggleClass('collapsed')
.parent()
.find('.answer')
.slideToggle('fast');
// Once the expander has been clicked execute alert only once for that particular expander header
alert($(this).text());
},
}
希望这是有道理的。非常感谢你!
答案 0 :(得分:1)
将alert()
换入if语句,检查是否设置了变量。
var expander_clicked = false;
click: function(){
$(this)
.toggleClass('collapsed')
.parent()
.find('.answer')
.slideToggle('fast');
if (!expander_clicked) { // only alert if expander wasn't previously clicked
alert($(this).text());
expander_clicked = true;
}
},