11

我有以下代码:

<script type="text/javascript">
$(document).ready(function(){
    shortcut.add("Ctrl+Alt+N", function() {
        $("#btnSave").click();
    });
});
</script>

其中 btnSave 是 ID 为 btnSave 的锚元素,快捷方式来自http://www.openjs.com/scripts/events/keyboard_shortcuts/。如果我将线路更改$("#btnSave").click();document.getElementById("btnSave").click()- 一切正常。问题是为什么 jquery 实现在我的情况下不起作用?
PS:为我的案例制作了 jsfiddle:http: //jsfiddle.net/0x49D1/WCmeU/
这是有类似问题的人:http ://forums.asp.net/t/1591818.aspx

4

2 回答 2

20

而不是$("#btnSave").click();尝试$("#btnSave").trigger('click');

您还可以使用$("#btnSave")[0].click();which is jquery 等价于document.getElementById("btnSave").click();

更新
不可能从 javascript 模拟用户链接点击,出于安全原因,您所能做的就是附加您自己的click事件处理程序并根据href链接的重定向,如下所示:

$("#btnSave").bind('click', function() {
    window.location.href = $(this).attr('href');
});
于 2012-09-27T09:19:23.047 回答
0

试试这个

<script type="text/javascript"> 
      $(document).ready(function(){
         shortcut.add("Ctrl+Alt+N", function() {
            $("#btnSave").live('click',function(){
           // do stuff here
            });
         }); 
      }); </script>
于 2012-09-27T09:55:04.993 回答