Jquery当我点击img时它表现得像链接(触发链接)

我有一个问题,我有一些李,在他们里面我有一个链接和一个图像。 我想要的是当有人点击它触发链接的图像时。 我不能把图像放在链接中,不要问为什么:))所以基本上它看起来像这样

  • sometext
  • sometext
  • ...

    而我正在考虑做这样的事情:

     $(img).click(function(){ var link = $(this).prev; $(link).trigger('click'); }) 

    我知道这不正确,但我认为你得到了照片,谢谢你的帮助。

     $('img').live('click', function () { $(this).closest('a').click(); }); 

    不要使用jQuery,只需移动标记右侧的结束标记:

     
  • sometext
  • sometext
  • 如果您不想更改HTML,请使用:

     $('img').click(function(){ location.href = $(this).prev().attr("href"); }); 

    代码审查

    • $(img)img未定义。 你的意思是: $('img') ? (添加引号,使用选择器img
    • var link = $(this).prev;prev是一个属性,但是一种方法。 必须调用它: var link = $(this).prev()
    • $(link).trigger('click') 。 由于link已经是一个jQuery对象,因此不必将该对象包装在另一个jQuery对象中。 使用: link.trigger('click');
    • 有缺陷的逻辑: .trigger('click')不会导致页面被跟踪,因为它不会触发默认的浏览器行为(在链接之后),而是调用元素的click事件。 哪个没有定义。

    实际上,这看起来很糟糕。 请注意,prev是一个function。

    或者,你可以做类似的事情

     window.location = link.attr('href'); 

    你可能会侥幸逃脱

     $(img).click(function() { var link = $(this).prev(); window.location.href = link.attr('href'); }); 

    您可以为锚链接和图像设置css类,并使用类名选择器来挂钩click事件

    $(“。myclass”)。click(function(){// Do Stuff})