我在单击另一个div时打开一个div.下面的代码似乎只是第一次工作。
它在页面刷新时工作。始终调用关闭事件,但不会触发单击事件。
$('.redirection-list .redirection a').on('click', clickevent);
function clickevent() {
$(this).attr("href", "#myCurrentDiv");
$('.redirection-list li').removeAttr('id');
$(this).closest('li').attr("id", "myCurrentDiv");
$('.redirection-list .redirection').removeClass('active');
$(this).closest('li').addClass('active');
$('.block-list').removeClass('col-sm-12');
$('.block-list').addClass('col-sm-6');
$('.redirection-edit').addClass('open');
$('.redirection-status span:nth-of-type(2n)').hide();
$('.redirection-status span:nth-of-type(n)').css('border-radius', '50px');
if ($(window).width() <= 768) {
$('body').addClass('mobile-device');
}
else {
$('body').removeClass('mobile-device');
}
$('.redirection-edit').insertAfter(this);
$('.redirection-edit').fadeIn(700);
if (location.pathname.replace(/^//, '') == this.pathname.replace(/^//, '') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
if (target.length) {
if ($(target).closest('.block-list').hasClass('search-list')) {
$('html, body').animate({
scrollTop: target.offset().top - 185
}, 500);
return false;
}
else {
$('html, body').animate({
scrollTop: target.offset().top - 112
}, 500);
return false;
}
}
}
}
$('.redirection-edit .close').click(function () {
$('.redirection-edit').removeClass('open');
$('.redirection-edit').fadeOut(500);
$('.redirection-list .redirection').removeClass('active');
$('.block-list').removeClass('col-sm-6');
$('.block-list').addClass('col-sm-12');
$('.redirection-status span:nth-of-type(2n)').show();
$('.redirection-status span:nth-of-type(n)').css('border-radius', '50px 0px 0px 50px');
$('.redirection-status span:nth-of-type(2n)').css('border-radius', '0px 50px 50px 0px');
$('.redirection-list .redirection a').bind('click',clickevent)
});
首先,太多的代码和缺乏HTML代码使问题变得混乱。 无论如何,据我了解,事件处理程序一旦完成就不会绑定到锚点,如果锚点正在作或动态创建,则可能会发生这种情况,在这种情况下,更改代码如下将解决问题
$('body').on('click', '.redirection-list .redirection a', clickevent);