2012-12-13 24 views
0

工作出於某種原因,這個腳本Safari中並沒有工作(在Windows上進行測試,認爲它發生在Mac上也一樣,雖然):jQuery的點擊而非Safari

$("#searchTerms").focus(function() { 
    $(document).keypress(function(e) { 
     if(e.which == 13) { 
      $("#searchBtn img").click(); 
     } 
    }); 
}); 

的jsfiddle:http://jsfiddle.net/ux86V/

當用戶按下回車鍵時,該腳本應該點擊圖像,同時關注搜索框(它必須以這種方式設置,並與一些奇怪的第三方服務綁定)。

編輯:它似乎沒有在jsFiddle工作,但它的確如此,所以不要假設整個腳本是壞的。我認爲jSFiddle只是防止重定向,我已經設置重定向到google.com爲例。

編輯2:它似乎是.click()的問題。有沒有其他替代方案可以使用,或者是註冊點擊元素的唯一方法?

編輯3:經過更多的測試,似乎jQuery的點擊事件不知何故無法正常工作。這可能與表單提交方式有關,我不確定。鏈接到現場演示:http://www.weblinxinc.com/beta/blue-sky-marketing/demo/

+0

另一個問題就在這裏,可能事是每次搜索字段獲得焦點時添加一個新的'keypress'事件處理程序。 – jfrej

+0

問題不在於按鍵是點擊,請參閱http://jsfiddle.net/ux86V/1/ – Musa

+0

在Windows的Safari 5中正常工作:http://jsfiddle.net/ux86V/3/ –

回答

0

13是回車鍵這是一種特殊鍵的代碼,你可以捕捉它keyup

+1

所以相同的代碼,只是'keyup'而不是'keypress'? – JacobTheDev

+0

如果你運行他的JSFiddle,它會捕獲13! –

+0

剛剛嘗試過的關鍵事物,它在Chrome中工作,但仍然在Safari中工作 – JacobTheDev

0

嘗試使用trigger();

$("#searchTerms").focus(function() { 
    $(document).keyup(function(e) { 
     if(e.which == 13) { 
      $("#searchBtn img").trigger("click"); 
     } 
    }); 
});​ 
+0

同樣的問題。什麼都沒發生。 – JacobTheDev

+0

我認爲,這個問題導致你的這部分代碼:'var link = document.getElementById('reflectedlink'); var input = document.getElementById('searchTerms'); input.onchange = input.onkeyup = function(){link.search ='?searchTerms ='+ encodeURIComponent(input.value); link.firstChild.data = link.href;};'如果你可以訪問編輯這個部分,試着用jquery做這個動作,並與你的其他代碼部分組合,以進入keypress的事情。 – fgokalp