Javascript 直到第二次单击才触发jQuery事件?

Javascript 直到第二次单击才触发jQuery事件?,javascript,jquery,html,overlay,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 over

我有以下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>

有人知道我该如何着手解决这个问题吗?提前感谢您的帮助。

试试看

$("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
   }
    });
});
$(“a[rel]”)。绑定(“单击”,函数(事件){

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

试试看

$("a[rel]").click(function(){alert($(this).attr("id"));});
查看HTML代码是否有问题。然后,您可以添加其他语句,以便从以下位置调试js代码:

//选择一个或多个元素作为覆盖触发器


将覆盖设置为HTML的click属性可能是多余的。基于上述情况,我假设该覆盖已在单击时激活。

有什么问题吗?可能是您仅在单击时启动覆盖?第一次查看后:!重要!您不能给出
ID
的数值!例如:
ID=“1”
使用字母作为第一个字符:
id=“a1”
@user828584根据HTML4.01规范,您不能以数字开始
id
属性。请参阅。我们没有说它会。只是讨论“id”验证。我对旧的overlay jQuery插件也有同样的想法。它可以工作,但实际上显示了overlay,然后立即隐藏它。哪个overlay插件是y你在使用?生活没有修复我的问题。