2010-04-23 6 views
3

Мне нужно программно запускать событие click, которое обрабатывается jQuery. Вот текущий код:jQuery - Programmatically Trigger Event

var $thumbs = $('#PhotoGalleryThumbs .tile'); 
var $zoom = $('#PhotoGallery #PhotoGalleryZoom img'); 
var $description = $('#PhotoGallery #PhotoGalleryDescription'); 

$thumbs.click(function(event) { 
    event.preventDefault(); 
    var $thumb = $(this); 
    $thumb.addClass('selected') 
     .siblings().removeClass('selected'); 
    $zoom.attr('src', $thumb.children('a').attr('href')); 
    $description.html($thumb.find('img').attr('alt')); 
}); 

Я имею ментальный блок работает, как создать функцию из обработки кода события, а затем произвольно называть его для элемента в $thumbs объекта.

ответ

5
$thumbs.click(); 

Это вызовет событие щелчка. Это то, что вы ищете?

+0

При желании, вы можете конкретно нацелены на данный элемент, а не весь их набор. '$ ('# yourTarget'). click();' –

+0

$ thumbs - это набор объектов. Я хочу выбрать конкретный объект и вызвать событие 'click()'. – Sonny

+0

как S Pangborn сказал: $ ('# yourSpecificElement'). Click() –

2

Аналогично предыдущему предложению

$($thumbs[7]).click(); 

вы можете использовать

$thumbs.eq(7).click(); 

Для уточнения, массив индексации в коллекции JQuery дает DOM-элемент в этой позиции, в то время как .eq(n) дает вам новый объект jQuery, который ссылается только на индексированный элемент.

http://api.jquery.com/eq/

+0

Спасибо, Джефф, я сохраню этот в моем заднем кармане точно! – Sonny