Событие jQuery не запускается до второго клика? - PullRequest
4 голосов
/ 16 августа 2011

У меня есть следующий код JQuery. При первом нажатии на ссылку ничего не происходит; однако при повторном нажатии на ссылку происходит ожидаемое действие.

$("a[rel]").bind("click", function(){
   $(".close_button_change_password").attr('id','change_password_'+$(this).attr('id'));
   $(this).overlay({
      // disable this for modal dialog-type of overlays
      closeOnClick: true,
      mask: {
         color: '#fff',
         loadSpeed: 200,
         opacity: 0.8
      }
   });
});

Вот мой HTML:

<a href="#" rel="#change_password" id="1">change password</a>

Кто-нибудь знает, как я могу решить эту проблему? Заранее благодарим за любую помощь.

Ответы [ 4 ]

2 голосов
/ 16 августа 2011

Попробуйте

$("a[rel]").live("click", function(){ ....

или вы можете попробовать .., но я не думаю, что это решит проблему.

$("a[rel]").live("change", function(){ ....   

И убедитесь, что он в DOM готов.


Вы можете попытаться предотвратить действие по умолчанию, возможно, это мешает вашему первому щелчку.
$("a[rel]").bind("click", function(event){
event.preventDefault(); // <---------^^
$(".close_button_change_password").attr('id','change_password_'+$(this).attr('id'));
$(this).overlay({
   // disable this for modal dialog-type of overlays
   closeOnClick: true,
   mask: {
      color: '#fff',
      loadSpeed: 200,
      opacity: 0.8
   }
    });
});
0 голосов
/ 16 августа 2011

From: http://flowplayer.org/tools/overlay/index.html

// select one or more elements to be overlay triggers

Установка наложения на атрибут click в HTML может быть излишней.Исходя из вышеизложенного, я предполагаю, что наложение уже активировано при нажатии.

0 голосов
/ 16 августа 2011

Попробуйте

$("a[rel]").click(function(){alert($(this).attr("id"));});

чтобы узнать, что-то не так с вашим HTML-кодом. затем вы можете добавить другое утверждение для отладки вашего js-кода

0 голосов
/ 16 августа 2011

Прежде всего, вставьте свой код с помощью оператора $ (document) .ready ({}). Он гарантирует, что ваш домен будет затронут кодом только после того, как весь синтаксис html проанализирован браузером.

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