簡體   English   中英

模擬<a>javascript中-element</a>的點擊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM