[英]simulating a click on a <a>-element in javascript
對於一個網站,我正在使用jQuery supzersized畫廊腳本: http ://buildinternet.com/project/supersized/slideshow/3.2/demo.html
如在演示中所見,在右下角有一個小箭頭按鈕,用於切換縮略圖欄。 在打開站點時,配置文件中沒有選項可以自動將其融合。
因此,我想我必須模擬對該按鈕的單擊(該按鈕為托盤按鈕,請參見HTML)。 我嘗試過這樣的事情:
<script>
$(function() {
$('#tray-button').click();
});
</script>
但是,這似乎不適用於我測試過的所有瀏覽器。
任何想法?
$('#tray-arrow').click(function() {
// prepare an action here, maybe say goodbye.
//
// if #tray-arrow is button or link <a href=...>
// you can allow or disallow going to the link:
// return true; // accept action
// return false; // disallow
});
$('#tray-arrow').trigger('click'); // this is a simulation of click
嘗試這個
$("#tray-arrow").live("click", function () {
// do something
});
我假設您要在頁面加載時彈出縮略圖欄#thump-tray
。
這是一種方法:
找到文件supersized.shutter.js並找到以下代碼:
// Thumbnail Tray Toggle
$(vars.tray_button).toggle(function(){
$(vars.thumb_tray).stop().animate({bottom : 0, avoidTransforms : true}, 300 );
if ($(vars.tray_arrow).attr('src')) $(vars.tray_arrow).attr("src", vars.image_path + "button-tray-down.png");
return false;
}, function() {
$(vars.thumb_tray).stop().animate({bottom : -$(vars.thumb_tray).height(), avoidTransforms : true}, 300 );
if ($(vars.tray_arrow).attr('src')) $(vars.tray_arrow).attr("src", vars.image_path + "button-tray-up.png");
return false;
});
之后,添加:
$(vars.tray_button).click();
不要忘記在頁面(插件中的demo.html)進行更改
<script type="text/javascript" src="theme/supersized.shutter.min.js"></script>
至
<script type="text/javascript" src="theme/supersized.shutter.js"></script>
而不是使用
$(function(){
//jquery magic magic
});
您可以嘗試在加載整個頁面(圖像等)后讓該女巫使用您的jquery魔術
$(window).load(function () {
// jquery magic
});
為了模擬點擊,您應該使用//與$('#tray-arrow')。click();相同。
$('#tray-arrow').trigger('click',function(){ })
例:
$(window).load(function () {
$('#tray-arrow').trigger('click',function(){
alert('just been clicked!');
})
});
嘗試
<script>
$(function() {
$('#tray-arrow').click();
});
</script>
確保該代碼在輪播初始化之后。
看來這是定時觸發的問題。 該插件還會在文檔加載時加載,因此,當您嘗試綁定事件偵聽器時,可能尚未創建該元素。 也許您需要在theme._init函數http://buildinternet.com/project/supersized/docs.html#theme-init或類似的地方添加偵聽器。
一個問題可能是您的插件檢測到單擊是由用戶(真正的鼠標單擊)還是通過代碼(通過使用$('#id').click()
方法)發起的。 如果是這樣,很自然,通過代碼單擊錨元素不會獲得任何結果。
檢查您的插件的源代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.