卸载/重新加载javascript还是针对大量ajax内容的更好解决方案?

卸载/重新加载javascript还是针对大量ajax内容的更好解决方案?,javascript,ajax,jquery,Javascript,Ajax,Jquery,我有一个页面,上面有几个标签。在这个例子中,我将使用两个。(产品、服务) 我没有让这些选项卡中的内容在运行时加载,而是让它们在单击选项卡时加载特定的选项卡内容。我有很多标签,有很多内容,这是获得合理初始页面/加载速度的唯一方法 这些选项卡中的每一个都有自己的javascript文件,在加载内容之后加载。javascript文件非常庞大,我需要在我的数据中提供一个带有通用标记的通用脚本文件,以便我可以对所有选项卡使用相同的脚本文件。。。例如,我没有类.viewproductcomments、.vi

我有一个页面,上面有几个标签。在这个例子中,我将使用两个。(产品、服务)

我没有让这些选项卡中的内容在运行时加载,而是让它们在单击选项卡时加载特定的选项卡内容。我有很多标签,有很多内容,这是获得合理初始页面/加载速度的唯一方法

这些选项卡中的每一个都有自己的javascript文件,在加载内容之后加载。javascript文件非常庞大,我需要在我的数据中提供一个带有通用标记的通用脚本文件,以便我可以对所有选项卡使用相同的脚本文件。。。例如,我没有类.viewproductcomments、.viewservicecomments等,而是将.viewelementcomments用于所有这些类

我已经成功地做到了这一点,但它带来了另一个问题

是否有一种简单的方法可以在单击另一个选项卡时“卸载此脚本文件创建的所有操作”,以便在通过ajax将所有新元素发送到页面后可以重新加载它?我可以在每一件小事上通过和。除了。on的层次结构级别来捕获静态元素,这将是一个相当高的层次

基本上,我有很多脚本需要在加载内容之后被识别,我不想为每个选项卡重新加载相同的脚本文件,因为这将导致重复事件或其他未知内容

如有任何建议,我们将不胜感激

谢谢大家!

*编辑以提供示例:

$('.post_comments_level1').each(function() {
    var cType = parseInt($(this).parent().prev('div').find('.c-t').text());
    var uniqueID = parseInt($(this).parent().prev('div').find('.un-id').text());
    var listingID = parseInt($(this).parent().prev('div').find('.l-id').text());
    var commentsHome = $(this);

    $.ajax({
        url: '/MyFeeds/Feed.aspx',
        type: 'POST',
        dataType: 'html',
        data: {
            "xfd" : 'Get_Comments',
            "ctype" : cType,
            "unid" : uniqueID,
            "pid" : portalID,
            "lid" : listingID,
            "uid" : userID
        },
        success: function(data) {
            commentsHome.html(data);
            ResetHeight();
        }
    });
});
例如,每个“产品”都有自己的一组注释,这些注释被包装在UL中,注释元素是LI元素。示例脚本查找类为.post_comments_level1的所有ul,通过ajax从数据库检索注释,并将这些注释插入最初为空的ul元素中


所以当我点击下一个标签时,说它是服务。。。我可以使所有这些工作的漫长道路,但正在寻找一个坚实的方法。例如,我现在只希望该操作仅在“服务”选项卡中新添加的UL上发生。。。我只是想了解一下优化情况的最佳方法。

我觉得您需要使用适当的方法创建JavaScript类,以尽可能减少编写的代码量,从而完成同样的任务

例如:

您的用户单击“产品”选项卡:

然后用户单击“服务”选项卡:

这是一个在JavaScript中创建类的非常原始的示例,但它应该让您走上正确的道路:

编辑:

我对你的问题的解释是你在问如何最好地重用你的代码。您描述了有几个选项卡,其中包含JavaScript/jQuery以类似方式操作的内容

我建议您创建一个类(在JavaScript中只是指一个可重用的函数)来完成这项任务

如果你在理解这一点上有困难,可以借助这个例子。查看代码并阅读警报:

我创建了一个名为“foo”的函数

然后我给“newfoo();”分配了一个名为“blah”的变量


“blah”继承了“foo”的所有功能,但是通过使用“new”操作符,我创建了一个完全不同的函数实例。这可能会帮助您解决选项卡问题。构建代码,使模型不受影响,然后在条件正确时(单击或可见等)使用该函数构建内容。

这些“脚本”是否可以是可以委派的事件,以便不需要重新绑定?我希望在继续之前确保遵循最佳实践。我可以将几件事情委派为事件。我可以让它工作,但我有一种让人畏惧的感觉,我正在弄脏不需要弄脏的水。我有一点麻烦绕着它转。我编辑了我的问题。你介意根据我的编辑给我举个例子吗?谢谢@Trendy@user1447679已更新,希望这对您的情况有所帮助。这非常有帮助!感谢您抽出时间帮助一位陌生人:)
$('#productsTab').on('click', function(evt){

    //Use classes you've created.
    var blah = new Foo(); 
    });
$('#servicesTab').on('click', function(evt){

    //Same function, same methods, is not affected by old one
    var blah2 = new Foo(); 
    });