1

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

},


}

希望这是有道理的。太感谢了!

4

1 回答 1

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;
    }
},
于 2013-05-01T20:45:34.227 回答