我有以下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>
有谁知道如何解决这个问题?提前感谢您的任何帮助。
答案 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属性可能是多余的。基于以上所述,我假设叠加已经在点击时激活。