jquery 一个文件只加载一次

jquery load() only once for one file

$("#documentProperties"+id).load("doctypes/"+selval+".jsp");

此处 selval 是下拉选项的值。下拉选项和我正在加载的 jsp 有相同的名字。这样我就可以使用 jquery 的 load() 将 jsp 文件加载到 div.

这里的问题是有多个 div 动态生成,名称为 documentProperties 和 为 id 唯一性附加的数字。我只需要加载一次 jsp,如果已经加载了一个 jsp 进入 div 不要加载它,显示任何警告错误,说明此文档已加载。

这是一个简单的解决方案,但如果您的 div 包含某些内容(即使它不是 jsp),这将不起作用

if($("#documentProperties"+id).html() == "")
     $("#documentProperties"+id).load("doctypes/"+selval+".jsp");
    else alert("Error");

您可以使用 $.get 并检查 div 的内容是否不等于结果

$.get( "doctypes/"+selval+".jsp", function( data ) {
 if($("#documentProperties"+id).html() != data)
     $("#documentProperties"+id).html(data);
    else alert("Error");
});

添加一个class怎么样:

$("#documentProperties"+id + ":not(.loaded)").load("doctypes/"+selval+".jsp", function(){
  $(this).addClass('loaded');
});

编辑:

var jspLoaded = [];

之后:

if (jspLoaded.indexOf(selval) === -1) {
  $("#documentProperties" + id).load("doctypes/" + selval + ".jsp", function() {
    jspLoaded.push(selval);
  });
}