使加载的脚本完全在doc.ready上运行

时间:2013-06-27 21:11:41

标签: jquery

如果有可能制作这个剧本,我只是更聪明了:

$(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");
        }
    })
});

http://jsfiddle.net/buYqW/1/

完全使用doc.ready事件运行,即使它在某种程度上被动态加载(通过.load()之后的页面加载)?我试图找到一个解决方案,但没有成功。

问题:页面加载内容中的下拉列表(脚本)都存在于页面中,因此如果触发再次执行动态内容,则会执行两次以及存在的下拉列表在页面上,因为页面加载不起作用(在下拉列表中单击一次打开并关闭下拉列表时它应该只打开)。

对此有任何想法都非常感谢。谢谢你的时间,抱歉任何糟糕的英语。

0 个答案:

没有答案