我对函数replaceWith()
有疑问。
我创建了一个日历。当我选择一天时,我会出现代替数字的交叉(添加事件)。
如果我在另一天点击,则会再次显示第一个选定日期的编号,并在我的第二个选择中显示十字。
但是,如果我尝试再次点击第一个选项,则没有任何反应(没有交叉)。
这是一个测试链接,它会更清晰:http://www.fatal-destiny.com/calendrier/
$(document).ready(function() {
$('#calendrier td a').click(function(){
var nbReplace = $("span[class='replace']").length;
if(nbReplace > 0)
{
var nbEvenements = $("span[data-evenement='1']").length;
var jour = $("span[class='replace']").attr('data-valeur');
var dateComplete = $("span[class='replace']").attr('data-date');
if(nbEvenements > 0)
$("span[class='replace']").replaceWith('<a href="#" class="'+dateComplete+'" style="display: inline-block;width: 200px; height: 120px; line-height: 120px; color: #ce2d2d;">'+jour+'</a>');
else
$("span[class='replace']").replaceWith('<a href="#" class="'+dateComplete+'" style="display: inline-block;width: 200px; height: 120px; line-height: 120px;">'+jour+'</a>');
}
var elemH2 = $(this);
var elem = $(this).attr('class');
var res = elem.split("-");
$.get( "charger_nb.php", { date: elem }, function( data ) {
if(data == 0)
elemH2.replaceWith('<span class="replace" data-valeur="'+res[0]+'" data-date="'+elem+'"><a href="#" onClick="ajouterEvenement(\''+elem+'\'); return false;"><img src="images/ajouter.png" alt="Ajouter" title="Ajouter un événement" class="opacite" /></a></span>');
else
elemH2.replaceWith('<span class="replace" data-valeur="'+res[0]+'" data-date="'+elem+'" data-evenement="1"><a href="#" onClick="ajouterEvenement(\''+elem+'\'); return false;"><img src="images/ajouter.png" alt="Ajouter" title="Ajouter un événement" class="opacite" /></a> <a href="#" onClick="voirEvenement(\''+elem+'\'); return false;"><img src="images/voir.png" alt="Voir" title="Voir les événements" class="opacite" /></a></span>');
});
});
});
一个想法?
答案 0 :(得分:1)
您在事件处理程序中定位的整个锚元素将替换为span,然后再将其放回,但现在动态插入锚点,您需要委派事件
替换
$('#calendrier td a').click(function(){
与
$('#calendrier').on('click', 'td a', function(){