симуляция щелчка по элементу <a>в javascript - PullRequest
0 голосов
/ 01 сентября 2011

для веб-сайта, я использую скрипт jQuery supzersized gallery: http://buildinternet.com/project/supersized/slideshow/3.2/demo.html

Как видно из демонстрации, в правом нижнем углу есть маленькая кнопка со стрелкой, которая переключаетпанель миниатюр.В файлах конфигурации нет опции, позволяющей автоматически смешивать это при открытии сайта.

Так что, я думаю, мне нужно смоделировать нажатие на эту кнопку (кнопка является кнопкой трея, см. HTML).Я попробовал что-то вроде этого:

<script>
$(function() {
    $('#tray-button').click();
});
</script>

Однако, похоже, это не работает ни в одном браузере, который я тестировал.

Есть идеи?

Ответы [ 7 ]

5 голосов
/ 21 ноября 2012
$('#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
2 голосов
/ 14 сентября 2011

Попробуйте это

$("#tray-arrow").live("click", function () {
               // do something

            });
1 голос
/ 01 сентября 2011

вместо использования

$(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!'); 
  })
});
1 голос
/ 01 сентября 2011

Я предполагаю, что вы хотите открыть панель миниатюр #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>
0 голосов
/ 01 сентября 2011

Проблема может заключаться в том, что ваш плагин определяет, был ли клик инициирован пользователем (реальный щелчок мыши) или с помощью кода (с использованием метода $('#id').click()).Если это так, то естественно, что вы не можете получить какой-либо результат, щелкая элемент привязки через код.

Проверьте исходный код вашего плагина.

0 голосов
/ 01 сентября 2011

Похоже, это проблема синхронизации триггера. Плагин также загружается при загрузке документа, поэтому, возможно, когда вы пытаетесь связать прослушиватель событий, элемент еще не создан. Может быть, вам нужно добавить слушатель во что-то вроде функции theme._init http://buildinternet.com/project/supersized/docs.html#theme-init или где-то похожее.

0 голосов
/ 01 сентября 2011

1001 * попробовать *

<script>
$(function() {
    $('#tray-arrow').click();
});
</script>

Убедитесь, что этот код указан после инициализации вашей карусели.

...