0

我的网站上有一些点击功能。当我单击它们时,我想切换特定的类。这是我必须这样做的代码:

$(".phenomenology_toggle_box").click(function() {
    pageClicked = '.phenomenology_toggle_box';
    escClicked = !escClicked;
    $('.phenomenology_close').toggleClass("phenomenology");
});

$(".judith_toggle_box").click(function() {
    pageClicked = '.judith_toggle_box';
    escClicked = !escClicked;
    $('.judith_close').toggleClass("judith");
});

当我按下 ESC 键时,我还希望能够调用最近点击的项目的功能。这是我的代码:

$(document).keydown(function escape(e) {
    if (e.keyCode == 27 && escClicked == false){ // Esc
        $(pageClicked).trigger('click');
        pageClicked = 'null';
        escClicked = true;
    }
});

Esc 键无法调用该函数,除非我要调用的函数中有警报。像这样:

$(".judith_toggle_box").click(function() {
    pageClicked = '.judith_toggle_box';
    escClicked = !escClicked;
    $('.judith_close').toggleClass("judith");
    //**************
    alert("Judith has been called.");
    //**************
});

如何让 ESC 键调用该函数而无需添加愚蠢的警报?

4

1 回答 1

0

在您的点击函数中添加一个事件参数

并尝试将其添加到函数的第一行 - event.preventDefault();

所以例如

$(".judith_toggle_box").click(function(event) {
    event.preventDefault();
    pageClicked = '.judith_toggle_box';
    escClicked = !escClicked;
    $('.judith_close').toggleClass("judith");
});

编辑:忘记将事件添加为函数参数,请再次检查

于 2013-07-16T03:47:20.213 回答