2012-09-27 163 views
7

伊夫以下代碼:JQuery的點擊不工作

<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

+1

在哪裏,你怎麼綁定了'#btnSave' click事件? – VisioN

+0

@VisioN,我想模擬用戶點擊鏈接。其實這是asp.net代碼的一部分,點擊鏈接運行一些服務器事件。不過,請參閱我添加的JSFIDDLE示例。如果情況是用點擊綁定,爲什麼'document.getElementById(「btnSave」)。click();'正在工作? – 0x49D1

回答

10

代替$("#btnSave").click();嘗試$("#btnSave").trigger('click');

您還可以使用$("#btnSave")[0].click();這相當於jQuery來document.getElementById("btnSave").click();

更新
這不是可以模擬從JavaScript的用戶鏈接的點擊,出於安全原因,所有你能做的就是重視自己的處理程序爲click事件,並基於鏈路的href重定向,像這樣:

$("#btnSave").bind('click', function() { 
    window.location.href = $(this).attr('href'); 
}); 
+0

觸發似乎執行,但鏈接沒有點擊.. – 0x49D1

+0

你想做什麼是不可能的,但你可以模擬它,看看我的更新。 – Nelson

+0

然後爲什麼'shortcut.add(「Ctrl + Alt + N」,function(){(「#btnSave」)。click(); document.getElementById(「btnSave」)。click(); });'工作?..認爲即時通訊丟失的東西:(http://jsfiddle.net/0x49D1/WCmeU/13/ – 0x49D1

1

試試這個

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