Javascript jquery单击链接

Javascript jquery单击链接,javascript,jquery,click,href,Javascript,Jquery,Click,Href,我有一个元素,它有一个href属性来调用javascript函数。此元素分为两类:(class=“icon32 icon close”)。此链接在具有类.modal的div上表示为“X”,用于关闭div。 我的问题是,当用户按下“esc”键时,我是否可以关闭div,从而调用a链接。我尝试了下面的代码,但它不起作用,尽管警报显示: $(document).keypress(function (e) { if (e.keyCode == 27) { alert('esc wa

我有一个元素,它有一个href属性来调用javascript函数。此元素分为两类:(
class=“icon32 icon close”
)。此链接在具有类
.modal
的div上表示为“X”,用于关闭
div
。 我的问题是,当用户按下“esc”键时,我是否可以关闭div,从而调用a链接。我尝试了下面的代码,但它不起作用,尽管警报显示:

$(document).keypress(function (e) {
    if (e.keyCode == 27) {
        alert('esc was pressed');

        $('.modal>.icon32').click();
    }
});

您需要使用keyup或keydown作为转义键,以及
e。jQuery中规范化了

$(function() {
    $(document).on('keyup', function (e) {
        if (e.which == 27) {
            $('.modal > .icon32').trigger('click'); //NOTE: direct child selector
        }
    });
});

哪一个不起作用-按esc键(在这种情况下,请尝试使用e.which而不是keyCode),或实际的选择器来调用单击?(在这种情况下,通过给元素一个显式ID来测试您的选择器是否错误,并尝试以这种方式选择它以验证它只是您的选择器)


另外,为什么需要“单击”X“->您不仅可以“隐藏()”模态div元素吗?

您还可以这样做:

$(document).keyup(function (e) {
    if (e.keyCode == 27) {
        // As soon as he escape is clicked you do..
        $('.icon32.icon-close').click();
    }
});

您应该调用本地DOM元素的
.click()
事件,而不是jQuery
。click()
事件。为此,请使用以下代码:

$('.modal>.icon32')[0].click();

如果您使用的是jQuery模式对话框,请使用选项
closeOnEscape:false
,如下所示:

$("#div").dialog({
            modal: true,
            resizable: false,
            closeOnEscape: false,
                buttons: {
                    Ok: function () {
                       //do something
                    }
                    Cancel: function(){
                       //do something
                    }
                }
            });

但它确实有效??或者它不起作用..jQuery UI Dialog是否应该处理Esc?让我们看看
标记的相关HTML和JavaScript。尝试使用
keydown
而不是
keypress
Try$('div.modal.icon32')。单击();