单击链接(扩展器)后仅执行一次警报

时间:2013-05-01 20:33:32

标签: jquery alert require-once

希望有人可以帮助我完成下一个挑战。以下脚本与我的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());

},


}

希望这是有道理的。非常感谢你!

1 个答案:

答案 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;
    }
},