jQuery - 以编程方式触发事件

3

我需要以编程方式触发由jQuery处理的点击事件。以下是当前代码:

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对象中的元素,但是遇到了困难。

2个回答

5
$thumbs.click();

这将触发点击事件。这是你要寻找的吗?

你可以选择性地针对特定元素进行操作,而不是整个元素集。$('#yourTarget').click(); - S Pangborn
$thumbs是一组对象。我想选择一个特定的对象并调用该对象上的click()事件。 - Sonny
就像S Pangborn所说的那样,$('#yourSpecificElement').click()。 - Evgeny Shadchnev
我需要它成为一个索引选择器,就像一个数组一样。类似于$thumbs[7].click()。我认为.index()可能会做到这一点,但它似乎与我所需的相反。 - Sonny
1
$($thumbs[7]).click()。 - Evgeny Shadchnev

2
类似于之前的建议:
$($thumbs[7]).click();

您可以使用

标签


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

为了澄清,对jQuery集合进行数组索引会给您该位置的DOM元素,而.eq(n)会给您一个新的jQuery对象,该对象只引用索引的元素。 http://api.jquery.com/eq/

谢谢Geoff,我一定会记住这个。 - Sonny

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接