加载完成后,在所有已加载的HTML文件中执行某些操作

时间:2015-07-23 17:32:31

标签: jquery html

单击单选按钮时,它会加载外部HTML文件,此文件会加载其他12个HTML文件或该文件的某些部分。所有这些HTML文件都包含一些输入文件。我自动将所有输入字段设置为id,我可以使用此代码。

$('input').each(function() {
  var thisIs = $(this).closest(".loadFileHere").attr("name")
  $(this).attr("id", parentId + thisIs + $(this).val());
});
$('form').each(function() {
  var thisIs = $(this).closest(".loadFileHere").attr("name")
  $(this).attr("id", parentId + thisIs + "Form");
});

为此,我需要在每个加载函数中替换上面相同的代码块,如下所示。

$(document).on('change', 'input:radio[class^="radioActivate"]', function(){
  var radioValue = this.value;
  var parentId = $(this).closest('.section').attr('id');
  var direction = $("#" + parentId).find(".barOptions").attr('id');
  if (radioValue == "Active") {
    $("#" + parentId).find("#" + direction).load("includes/7_preference/modules/" + parentId + ".html", function(){
      $("#" + parentId + "Position").load("includes/4_block/position.html);
      // and 11 more load functions are here
    });
  } else $("#" + direction).children().remove();
});

为了保持文件大小尽可能小,我希望在完成所有加载注册后只使用该代码一次。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

你的意思是这样吗?

function setIds(parentId) {
    $('input, form').each(function() {
      var thisIs = $(this).closest(".loadFileHere").attr("name")
      $(this).attr("id", parentId + thisIs + $(this).val());
    });
    $('form').each(function() {
      var thisIs = $(this).closest(".loadFileHere").attr("name")
      $(this).attr("id", parentId + thisIs + "Form");
    });
}

然后您可以在每个onchangesetIds(parentId);

中调用此功能