2012-03-28 3 views
1

У меня есть коллекция ссылок с эскизами, которые соответствуют им. Мне нужно загрузить эти миниатюры в виде div с установленным на них фоновым изображением. Я использую одно изображение, в котором есть все миниатюры, поэтому я не могу просто загружать изображения в виде изображений. При нажатии на изображение должно сделать то же самое, нажав на ссылку, хотя, я сделал JSFiddle, чтобы показать, что я имею в виду (и показать проблему):вызвать щелчок на якорной ссылке

the JSFiddle

Когда я нажимаю две ссылки там в новом окне , который имеет сайт, который я хочу. Но когда я нажимаю миниатюры, я не могу нажать на ссылку, вызванную.

Нажав на ссылку, вы получите дополнительную функциональность (статистика), поэтому я предпочитаю запускать клик по ссылке, связывая одну и ту же настраиваемую функцию как с якорями, так и с div.

Заранее спасибо

ответ

5

Хийя Работа демо здесь: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')); 

    }); 
});​ 

Надеется, что это помогает, ура!

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(); 
Смежные вопросы