2013-07-26 49 views
1
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> 
    </script> 
    <title>test trigger</title> 
</head> 
<body> 

    <script> 
    $(document).ready(function(){ // on document ready 
    $("#testbed").trigger('click'); // click the element 
    }) 
    </script> 

    <a id="testbed" href="http://www.google.com">testing</a> 
</body> 
</html> 

我希望這段代碼在文檔準備就緒時自動點擊測試牀鏈接。但鏈接不被點擊。jquery觸發器沒有工作

+1

我不明白了一個道理,爲什麼要這麼做。只是簡單地重定向到最終目標似乎更好 - 而不是嘗試點擊錨。這似乎是一個迂迴的方式到達目的地 – TGH

+0

這是您的完整代碼?因爲,如果是這種情況,你將有一個解析錯誤。在'$(document).ready({})'末尾,在末尾 –

+0

處缺少一個分號';',不會產生javascript錯誤。分號是可選的 – mkoryak

回答

0

你爲什麼不試試這個

<script> 
$(document).ready(function(){ // on document ready 
    var url = "http://www.google.com"; 
    window.location.href = url; 
}) 
</script> 
+0

Google網站只是一個例子,我需要自動點擊一個功能。 Mobile UX Design Product Design

+0

以及如果您通過類選擇鏈接更改變量url會怎麼樣? 'var url = $(「。selected」)。attr(「href」);' – zzlalani

+0

你最終的要求是什麼?可能會有更好的解決方案。 – zzlalani

1

您需要在testbed

$(document).ready(function(){ // on document ready  
    $("#testbed").click(function(){ // on document ready 
     alert("clicked"); 
    }); 
    $("#testbed").trigger('click'); // click the element 
}); 

定義點擊。如果你不希望有點擊事件,只是要導航到鏈接的HREF那麼你可以使用window.location.href = url;

$(document).ready(function(){ // on document ready  
    window.location.href = document.getElementById("testbed").href; 
}); 

嘗試ü儘可能地唱出原生功能和特性等,以獲得表現。您可以通過jspref查看不同屬性訪問方法的性能差異。

+0

爲什麼不''window.location.href = $(「#testbed」)。attr(「href」);'因爲您已經在使用jQuery – zzlalani

+0

使用原生JavaScript代碼可以提高性能,我喜歡嘗試使用原生函數和屬性等等。您可以檢查$(「#testbed」)[0] .href和$(「#testbed」)。attr(「href」)的性能差異。在這裏,http://jsperf.com/script-time-test – Adil

+0

感謝您的信息.. :) – zzlalani

0

觸發器用於執行您的鏈接測試平臺沒有的點擊事件。如果你想你的頁面重定向到該鏈接window.location.href

window.location.href = $("#testbed").attr('href'); 
1

click事件被觸發,爲什麼不使用。例如:

$(document).ready(function(){ // on document ready 
    $("#testbed").on ('click', function() { 
     alert('click event'); 
    }); 

    $("#testbed").trigger('click'); // click the element 
}) 

訪問href中的URL的實際操作不會發生。您可以使用window.location更改頁面並跳過jQuery。

0

.click()調用定義的點擊函數。它不模擬用戶點擊。下面的代碼應該給你你想要的功能。

$(document).ready(function(){ 

//Define click function 
    $("#testbed").click(function(){ 
    window.location.href = $("#testbed")[0].href; 
    }); 

//Trigger the click event. 
    $("#testbed").trigger('click'); 
}); 
0

試試下面的代碼:

<script> 
    $(document).ready(function(){ // on document ready 

    //Following code simulates a click event 
    anchorObj = $("#testbed")[0]; 
    var evt = new MouseEvent('click', { 
     'view': window, 
     'bubbles': true, 
     'cancelable': true 
    }); 
    anchorObj.dispatchEvent(evt); 
    }); 
    </script> 

這工作,因爲它模擬的錨實際點擊事件。但jQuery點擊將不起作用,因爲它只會執行爲元素定義的點擊處理程序。

0

你可以試試這個,

<script> 
$(document).ready(function(){ // on document ready 
    $("#testbed")[0].click(); // click the element 
}) 
</script> 
2

首先你應該知道,.trigger()功能不能被用來模擬天然瀏覽器的事件,比如點擊一個文件輸入框或錨標記。

$("#testbed").trigger('click'); // it will not change the current page. 

你必須使用.simulate()來模仿這種原生瀏覽器事件,

$("a").simulate("click"); 

要使用.simulate()功能,你必須在文件中包含simulate.js

您可以參考這個網頁, triggering event handelers