jQuery - триггер ('click') не работает в IE - Object не поддерживает это свойство или метод - PullRequest
3 голосов
/ 27 июня 2011

У меня есть изображения с растушевывающим оверлеем div при наведении, которое отображает текстовую ссылку внутри.

При нажатии на ссылку открывается теневая коробка с содержимым.Я хочу, чтобы весь оверлейный элемент div был кликабельным, поэтому я использовал:

$("div.overlay").each(function(){                
         $(this).click(function(){
             $('a#overlink').trigger('click'); // id of shadowbox link

             return false;

             });


       });

Он отлично работает в FF, Safari и Chrome, но IE показывает ошибку «Объект не поддерживает это свойство или метод».

Есть ли другой способ сделать этот или другой метод для использования?

Ответы [ 5 ]

2 голосов
/ 27 июня 2011

Какую версию вы используете?Я помню, что некоторые версии IE не поддерживают щелчки объектов, кроме ссылок или кнопок: (

возможно, попробуйте использовать событие mousedown в качестве обходного пути

1 голос
/ 27 июня 2011

Я бы не рекомендовал такой подход. Почему вы не можете вызвать функцию , которая обрабатывает событие щелчка вашего якоря (ссылки)? Или перейдите, используя местоположение по вашей ссылке. Это имело бы больше смысла.

0 голосов
/ 27 июня 2011

Попробуйте это:

$("div.overlay").each(function(){                
  $(this).click(function(){
      var $elm = $('a#overlink');
      if (document.createEvent) {
        var e = document.createEvent('MouseEvents');
        e.initEvent( 'click', true, true );
        $elm.get(0).dispatchEvent(e);
      }
      else {
        $elm.trigger("click");
      }
     return false;
  });
});
0 голосов
/ 27 июня 2011

Вы пробовали:

 $('a#overlink').click();
0 голосов
/ 27 июня 2011
$("div.overlay").each(function(i,n){                
         $(n).click(function(e){
             //do not need "a" in front of it as #overlink is unique anyways
             $('#overlink').trigger('click'); // id of shadowbox link

             return false;

             });


       });

попробуйте это и обратите внимание на мой комментарий над вашим триггером

...