我有一个问题,我有一些李,在他们里面我有一个链接和一个图像。我想要的是当有人点击图像时触发链接。我不能把图像放在一个链接中,不要问为什么:)...所以基本上它看起来像这样
<li><a href="somelink">sometext</a><img src=""/></li>
<li><a href="somelink">sometext</a><img src=""/></li>
...
我正在考虑做这样的事情:
$(img).click(function(){
var link = $(this).prev;
$(link).trigger('click');
})
我知道这不正确,但我认为你得到了照片,谢谢你的帮助。
答案 0 :(得分:4)
不要使用jQuery,只需移动</a>
标记右侧的结束<img>
标记:
<li><a href="somelink">sometext<img src=""/></a></li>
<li><a href="somelink">sometext<img src=""/></a></li>
如果您不想更改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
事件。哪个没有定义。答案 1 :(得分:0)
实际上,这看起来很糟糕。请注意,prev是一个函数。
或者,您可以执行类似
的操作window.location = link.attr('href');
答案 2 :(得分:0)
你可以通过
之类的东西逃脱$(img).click(function()
{
var link = $(this).prev();
window.location.href = link.attr('href');
});
答案 3 :(得分:0)
你可以为锚链接和图像设置一个css类,并使用一个类名选择器挂钩click事件
$( “MyClass的”)。单击(函数(){ //做东西 })
答案 4 :(得分:0)
$('img').live('click', function () {
$(this).closest('a').click();
});