我有一个空div,我正在附加一些带有html和两个链接的文本。一个链接是正常的,href =“some url”,另一个是带有类的元素。简而言之:这是一个“是|否”的块。是的是一个普通的网址,而NO是一个会淡出整个div的元素。
问题是我的div没有淡出。
HTML:
(用css:display:block从开始隐藏它)
JS:
// THE TEXT
var lbText = 'Thanks for helping us! Here\'s a preview of the part of gelattina you\'re about to take.';
lbText = lbText + '<br /><img src="img/g10/OldGelattina'+cpNum+'.jpg" />';
lbText = lbText + '<br /> <a href="claim.php?id='+cpNum+'">YES</a> | <a href="#" class="no">NO</a>'
// I USE THIS CODE TO APPEND THE TEXT AND FADE IN THE ENTIRE DIV
$('.not-claimed').bind('click',function(){
$('#lightboxcont').empty().append(lbText).css({
'width': '30%',
'height': '30%',
'background': '#ffffff',
'zIndex': '9999'
}).fadeIn().center();
$('#lightboxOverlay').fadeIn();
});
下一个代码就是我用来隐藏de whole div
$('#lightboxcont a').bind('click',function(){
$("#lightboxOverlay").fadeOut();
$('#lightboxcont').fadeOut().empty();
return false;
});
正如我所说,问题是最后一个jquery代码无效,我不知道为什么。
我希望你理解,抱歉我的英语。
答案 0 :(得分:1)
Jquery的绑定方法仅附加到首次调用时可用的匹配元素。但它们包括“实时”方法,该方法现在附加到所有匹配元素,并在将来创建。因此,如果在绑定事件后附加html,请尝试使用:
$('#lightboxcont a').live('click',function(){
$("#lightboxOverlay").fadeOut();
$('#lightboxcont').fadeOut().empty();
return false;
});
将绑定更改为live。 http://api.jquery.com/live/
答案 1 :(得分:0)
在将事件添加到DOM之前,您是否尝试将事件附加到<a>
标记?如果您在.not-claimed
点击事件中调用“下一个代码”,在追加后,它可能会起作用
你的“点击”功能是否会被执行?
答案 2 :(得分:0)
将bind
更改为live
。绑定不适用于动态添加的元素。
$('#lightboxcont a').live('click',function(){
$("#lightboxOverlay").fadeOut();
$('#lightboxcont').fadeOut().empty();
return false;
});
答案 3 :(得分:0)
谢谢你们!使用live而不是bind来解决这个问题......我真的很感激!
$('#lightboxcont a')。live('click',function(){ $( “#lightboxOverlay”)淡出(); 。$( '#lightboxcont')淡出()空(); 返回false; });
问候!!