jQuery事件直到第二次点击才开始?

时间:2011-08-16 19:32:05

标签: javascript jquery html overlay

我有以下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 个答案:

答案 0 :(得分:2)

尝试

$("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
   }
    });
});

答案 1 :(得分:0)

首先,使用$(document).ready({})语句嵌入代码。只有在浏览器解析了所有html语法之后,它才能确保您的代码会受到代码的影响。

答案 2 :(得分:0)

尝试

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

查看HTML代码是否有问题。然后你可以添加其他语句来调试你的js代码

答案 3 :(得分:0)

来自:http://flowplayer.org/tools/overlay/index.html

// select one or more elements to be overlay triggers

将叠加层设置为HTML的click属性可能是多余的。基于以上所述,我假设叠加已经在点击时激活。