单击单选按钮时,它会加载外部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();
});
为了保持文件大小尽可能小,我希望在完成所有加载注册后只使用该代码一次。有没有办法做到这一点?
答案 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");
});
}
然后您可以在每个onchange
:setIds(parentId);