Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从personal函数加载文件后的jQuery addclass_Javascript_Jquery_Ajax_Addclass - Fatal编程技术网

Javascript 从personal函数加载文件后的jQuery addclass

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) {

我有一个personnal函数,它加载一个文件,我想在加载页面后更改一个类

功能是

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()。很多