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})