событие jquery click не запускается в firefox - PullRequest
3 голосов
/ 09 сентября 2010

Эта функция прикрепляет плагин fancybox к некоторым изображениям. Если щелкнуть изображение в ползунке, оно откроет соответствующее увеличенное изображение в пределах #hidden images div. Он работает в Internet Explorer, но не работает в Firefox (3.6.9). Как мне заставить его работать в Firefox?

<script type="text/javascript">
   $(document).ready(function() {
       $("#hidden_images a").fancybox(); 
       $("#image_slider img").click(function(event) {
           var $tgt = $(event.target);
           var $desc = $tgt.attr("longdesc");
           $("#" + $desc).click();   
       });
   });
</script>

Вот мой HTML:

<div id="image_slider" class="imageflow">
    <img src="images/press/charity1.jpg" longdesc="charity1"  width="250" height="250" alt="Charity 1" />
    <img src="images/press/charity2.jpg" longdesc="charity2"  width="250" height="250" alt="Charity 2" />
</div>
<div id="hidden_images">
    <a id="charity1" href="images/press/charity1_lg.jpg" style="display:none;"><img src="images/press/charity1_lg.jpg" alt="charity one caption"/></a>
    <a id="charity2" href="images/press/charity2_lg.jpg" style="display:none;"><img src="images/press/charity2_lg.jpg" alt="charity two caption"/></a>
</div>

Ответы [ 4 ]

3 голосов
/ 09 сентября 2010

Ваша проблема может заключаться в использовании longdesc, который не поддерживается основными браузерами .Internet Explorer может позволить вам добавить атрибут, который он не распознает, в то время как FireFox может запретить это поведение.Попробуйте сохранить описание в атрибуте alt или, если необходимо, в методе jquery data .

2 голосов
/ 10 сентября 2010

Для любых целей и задач у вас может быть атрибут foo = "bar", и он все равно будет работать. Вот как я бы кодировал внутреннюю часть вашего jquery

<script type="text/javascript">
   $(document).ready(function() {
       $("#hidden_images a").fancybox(); 
       $("#image_slider img").click(function(event) {
           window.location = $("#" + $(event.target).attr("longdesc")).attr("href");
       });
   });
</script>

У меня работает на Safari, FF и Chrome.

Редактировать Дерр, я думаю, что я неправильно прочитал ваш пост, который может быть не тем, что вы ищете ...

Редактировать 2 Момент АГА, вот как вы это делаете.

$("#" + $(event.target).attr("longdesc")).fancybox().trigger("click");
1 голос
/ 21 января 2012

Я тоже застрял с той же проблемой, когда Firefox не работает с событием onclick.

Мое требование: Мне пришлось динамически добавлять несколько альбомов, и поэтому я должен был передать идентификатор для каждого альбома в fancybox, чтобы галерея изображений могла открывать изображения для определенного альбома.

Я занялся поиском и нашел какой-то трюк из этого URL , но в моем случае это не сработало. Я потерял 3-4 часа в поисках и внесении изменений. Наконец, я сделал некоторые изменения в своем HTML-коде и включил событие onclick для тега изображения альбома вместо тега привязки, и оно отлично работает в Mozilla, IE-7, IE-8, Safari, а также в Chrome.

onclick="$('a.pop{$key}').fancybox().trigger('click');" 

//  { @$key = Use your dynamic id  }

Надеюсь, это может помочь вам, ребята.

0 голосов
/ 15 ноября 2016

У меня была похожая проблема, когда событие click не работало в Firefox, только для того, чтобы определить, что выполнение не было запущено на «span» Перенес атрибуты из диапазона в тег «button», и он начал работать.

Изменить HTML с: <span class="some-class"> Быть: <button class="some-class">

Javascript:

$(document).on('click','.some-class',function(){alert( "Test click event.");});

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

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