如果有可能制作这个剧本,我只是更聪明了:
$(document).ready(function () {
$(".box, .box div").on('click', function (e) {
e.stopPropagation();
var id = this.id.replace('label_', '');
if ($("#drop_" + id).is(":hidden")) {
$('.style_active').siblings('[id^=drop_]').hide();
$('.style_active').removeClass("style_active");
$("#drop_" + id).show();
$(this).addClass("style_active");
} else {
$("#drop_" + id).hide();
$(this).removeClass("style_active");
}
});
$(document).click(function () {
$('.style_active').siblings('[id^=drop_]').hide();
$('.style_active').removeClass("style_active");
})
$('.drop').click(function () {
if ($(this).parent().hasClass('closable')) {
$('.style_active').siblings('[id^=drop_]').hide();
$('.style_active').removeClass("style_active");
}
})
});
完全使用doc.ready事件运行,即使它在某种程度上被动态加载(通过.load()之后的页面加载)?我试图找到一个解决方案,但没有成功。
问题:页面加载内容中的下拉列表(脚本)都存在于页面中,因此如果触发再次执行动态内容,则会执行两次以及存在的下拉列表在页面上,因为页面加载不起作用(在下拉列表中单击一次打开并关闭下拉列表时它应该只打开)。
对此有任何想法都非常感谢。谢谢你的时间,抱歉任何糟糕的英语。