jQuery each()没有'使用OOP方法是行不通的

jQuery each() doesn't work using OOP approach

本文关键字:OOP 使用 方法 行不通 each 没有 jQuery      更新时间:2023-09-26

这是我在javascript:中的情况

EA = {
    DOMElement: $('#example img'),
    photos: '',
    ...
    countSelected: function(){
        var len = 0;
        var id = '';
        EA.DOMElement.each(function(index){
            id = $(this).attr('data-id');
            EA.photos += id + ",";
        });
        len = EA.photos.length;
        return len;
    },   
}

函数countSelected返回0,但如果我使用此解决方案,则一切正常:

    countSelected: function(){
        var len = 0;
        var id = '';
        $('#example img').each(function(index){
            id = $(this).attr('data-id');
            EA.photos += id + ",";
        });
        len = EA.photos.length;
        return len;
    },   

在我看来,问题出在选择器上:$(this)。你知道什么解决办法吗?

谢谢!

问题是,您是何时初始化命名空间的?如果在DOM完全准备好之前这样做,和/或稍后在#example元素下添加了图像,那么jQuery引用就过时了。

你有几个选择。一种是稍后对其进行初始化;另一个是每次都使用jQuery调用(就像在第二个代码片段中一样);另一个是在命名空间中创建一个函数,该函数将在需要时调用jQuery构造函数(这至少可以减少选择器重复)。