Javascript 从personal函数加载文件后的jQuery addclass
我有一个personnal函数,它加载一个文件,我想在加载页面后更改一个类 功能是Javascript 从personal函数加载文件后的jQuery addclass,javascript,jquery,ajax,addclass,Javascript,Jquery,Ajax,Addclass,我有一个personnal函数,它加载一个文件,我想在加载页面后更改一个类 功能是 var _loadFile = function(filename, container, errorMessage) { $.ajax({ url : filename, type: "GET", cache: false, dataType: "html", success : function (data) {
var _loadFile = function(filename, container, errorMessage) {
$.ajax({
url : filename,
type: "GET",
cache: false,
dataType: "html",
success : function (data) {
$(container).html(data);
}
});
}
当我想用的时候,我会用的
_loadFile('assets/data/html/file.html', '#containerID', 'errorMessage');
$(idActive).addClass('active');
文件已加载,但类未更改。因为我想要一个泛型函数,所以不能在success()中更改类
Thanx要获得您的帮助如果元素“idActive”是通过AJAX加载的,您必须在
成功回调中添加类
:
var _loadFile = function(filename, container, errorMessage) {
$.ajax({
url : filename,
type: "GET",
cache: false,
dataType: "html",
success : function (data) {
$(container).html(data);
$(idActive).addClass('active');
}
});
}
假设定义并生成了idActive
。否则,添加一个
console.log($(idActive));
并查看控制台输出以确定要添加该类的元素确实存在。您正在尝试修改尚未加载的元素的DOM(addClass)。请尝试以下方法:
var _loadFile = function(filename, container, errorMessage) {
return $.ajax({
url : filename,
type: "GET",
cache: false,
dataType: "html",
success : function (data) {
$(container).html(data);
}
});
}
_loadFile('assets/data/html/file.html', '#containerID', 'errorMessage')
.then(function() {
$(idActive).addClass('active');
});
$.ajax
返回promise对象,然后使用它的方法。您还可以移动$(idActive).addClass('active')代码>内部成功回调,但这并不好:我假设\u loadFile
是一个泛型函数,我们不希望它知道除了加载数据以外的任何事情。Thanx感谢您的帮助,但正如我在问题中所说的,我想要一个泛型函数,那么我不能在我的\u loadFile function完美解决方案中使用addClass()。很多