jQuery:click()函数对<a> element.. why?</a>不起作用

时间:2010-05-19 17:48:08

标签: jquery

我无法触发此元素的点击

$(this).find('.views-field-field-cover-fid').find('a.imagecache-coverimage').click();

jQuery路径是正确的。实际上,如果我打印它,它会给出正确的元素:

console.log($(this).find('.views-field-field-cover-fid').find('a.imagecache-coverimage'));

但由于某种原因,函数click()不起作用。 感谢

3 个答案:

答案 0 :(得分:4)

http://api.jquery.com/trigger/

编辑:好的,现在我明白了你想要做什么,抱歉我没有意识到.click()和.trigger('click')基本相同。另一种方法是将地址绑定到click事件。

$(this).find('.views-field-field-cover-fid a.imagecache-coverimage')
       .bind("click", function(){
           window.location.href = $(this).attr('href');
       });

然后你就可以触发点击了!

$(this).find('.views-field-field-cover-fid a.imagecache-coverimage')
       .trigger('click');

(或.click();

Demonstration

答案 1 :(得分:4)

编辑:

现在,我发现您要访问href元素的a

这样做:

window.location = $(this).find('.views-field-field-cover-fid').find('a.imagecache-coverimage').attr('href')

Patrick,.click()函数的行为取决于它的使用方式。

如果您希望为所选元素触发“click”事件处理程序,那么您正确使用它,但首先您需要为该元素提供一些功能。

这使我们进入了使用.click()的第二种(也是更常见的)方式。那就是给元素赋予功能。在DOM加载时运行:

$(document.ready(function() {
    $('.views-field-field-cover-fid')
           .find('a.imagecache-coverimage')
           .click(function() {
                alert('I was clicked!');
            });
 });

现在,与您的选择器匹配的所有元素都会在点击时显示警告,或者像您最初一样触发事件。

$(this).find('.views-field-field-cover-fid')
       .find('a.imagecache-coverimage')
       .click();

答案 2 :(得分:3)

单个find呢?

$(this).find('.views-field-field-cover-fid a.imagecache-coverimage').click(function() {
  // stuff
});