我有一组链接,其中包含与之匹配的缩略图。我需要将这些缩略图加载为div,并将背景图像设置为div。我正在使用其中包含所有缩略图的单个图像,因此我无法将图像作为图像加载。单击图像应该像点击链接一样,我做了一个JSFiddle来显示我的意思(并显示问题):
当我点击其中的两个链接时,会打开一个新窗口,其中包含我想要的网站。但是当我点击缩略图时,我无法点击触发的链接。
单击该链接将具有额外的功能(统计数据),因此我更喜欢通过将相同的自定义函数绑定到锚点和div来触发链接上的单击。
提前致谢
答案 0 :(得分:7)
在HTML4中,click事件仅为输入元素和某些浏览器定义,最明显的是FF,strictly followed the specification。然而HTML5游戏改变了,任何现代浏览器都实现了这个功能,但 jQuery仍然有一个特殊情况(从jquery trigger method中提取):
if ( !onlyHandlers && !event.isDefaultPrevented() ) {
if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) && !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) {
// Call a native DOM method on the target with the same name name as the event.
作为一种解决方法,您可以从以下位置更改代码:
target.trigger("click");
到
target.get(0).click();
答案 1 :(得分:5)
Hiya 在这里工作演示: http://jsfiddle.net/f6FJ3/19/
触发原因请阅读:jQuery: trigger click() doesn't work?
It's important to clarify that doing jQuery('#open').click() does not execute the href attribute of an anchor tag so you will not be redirected. It executes the onclick event for #open which is not defined.
下面的代码将在图像点击时获得所需的窗口输出。
JQuery代码
$(document).ready(function(){
$('.tmb').click(function(){
var target=$(this).parent().find("a");
$("#debug").text("clicked "+target.text());
//target.triggerHandler('click');
window.open(target.attr('href'));
});
});
希望这有帮助,欢呼!