2013-02-24 2 views
1

Этот маленький мир кода работает в Firefox, но не Safari:.click() не работает в Safari

$('.pinterest-button').click(function() { 
    $('.pinterest-button').hide(); 
    $('#pin1 a img').click(); 
    setTimeout("$('.pinterest-button').show();", 1000); 
}); 

Если кнопка нажата Pinterest, он должен создать щелчок-событие для этой картины:

.
<div id="pin1" class="gallery span24 offset6"> 
    <a class="span24" alt="" title="bild" href="javascript:void((function()%7Bvar%20e=document.createElement('script');e.setAttribute('type','text/javascript');e.setAttribute('charset','UTF-8');e.setAttribute('src','http://assets.pinterest.com/js/pinmarklet.js?r='+Math.random()*99999999);document.body.appendChild(e)%7D)());"> 
     <img class="gallery-img" src="http://www.goldentree.de/wordpress/assets/bild.jpg"> 
    </a> 
</div> 

Если я нажимаю кнопку в Safari, она становится скрытым и прокручивает страницу вверх, поэтому нажмите сам работает, но я думаю, что $ («# pin1 в IMG») нажмите(); который должен запускать код в изображениях href, не работает. Я нашел некоторых других людей, имеющих ту же проблему, но ни одно из их решений не работает для меня, поэтому я не совсем уверен, действительно ли этот клик() не работает. Я также не уверен, что заставляет мой браузер прокручивать вверх, потому что я думал, что это сделано с помощью наложения pinterest. О, да: прямое нажатие на изображение работает.

+0

Работает для меня на Chrome и Safari (Mac) – sdespont

+0

Попробуйте '$ ('# pin1 a'). Click()' – mplungjan

+0

Я использую Safari для Windows. И, к сожалению, $ ('# pin1 a') тоже не работает. –

ответ

0

Эта проблема может быть вызвана двумя вещами

1. DOM еще не готов, когда вы прикрепили слушателя

2. Ваш HTML код добавляется динамически

решение для первый случай должен поставить ваш код под готовый блок

$(document).ready(function(){ 
    $('.pinterest-button').click(function() { 
     $('.pinterest-button').hide(); 
     $('#pin1 a img').click(); 
     setTimeout("$('.pinterest-button').show();", 1000); 
    }); 
}); 

Раствор для 2 случая чтобы сделать слушателя жить для каких-либо изменений

$(document).ready(function(){ 
     $('.pinterest-button').on('click',function() { 
      $('.pinterest-button').hide(); 
      $('#pin1 a img').click(); 
      setTimeout("$('.pinterest-button').show();", 1000); 
     }); 
    }); 

и добавьте по щелчку к изображению слушателя при необходимости

Я надеюсь, что это может помочь

+1

'.on (" click ", ...)' - это перенесенный способ продвижения вперед. –

+0

Функция уже вызывается из $ documnt) .ready. Также второе усвоение не работает. И, как я уже сказал. Кнопка pinterest скрывается и появляется в Safari, поэтому проблема не в том, что моя функция не вызвана. Вероятно, это $ ('# pin1 a img'). Click() не работает. –

+0

Есть ли какая-нибудь функция для img .click? – Sedz

Смежные вопросы