1

我编写了以下代码,希望仅在内容尚未加载到 div 时才加载 ajax。基本上,当我使用 ajax 加载内容并根据当前加载的内容为内容赋予类名时。如果当前类名是div中已经加载的内容,那么我就不加载ajax,否则用ajax加载内容。

现在,无论 div 的类名是什么,ajax 请求都会触发。知道为什么这不起作用吗?

这是网站:(点击左眼)

http://www.uvm.edu/~areid/homesite/index.html

这是javascript函数:

else if(id =='left-eye23')
                    {       
                        leftcontent = $("#left-content");                       
                        content = leftcontent.attr('class');
                        if(content !== 'photos')
                        {       
                            alert("content is not photos"); 
                            SlideOut(move);
                            $("#relativeContainer").css('z-index','-1');
                            var leftcontent;
                            $("#left").bind("webkitTransitionEnd mozTransitionEnd oTransitionEnd msTransitionEnd transitionend", 
                            function(){ 
                                $.ajax({
                                url:'photos.php',
                                beforeSend: function(){
                                    leftcontent.html('<img src="loading.gif" /> Now loding...');
                                },
                                }).done(function(data){
                                    leftcontent.html(data);
                                    leftcontent.addClass("photos");
                                }); 
                                });
                            }
                        else if(content == 'photos')
                        {
                            SlideOut(move); 
                            $("#relativeContainer").css('z-index','-1');
                            alert('content is photos');
                        }

                    }
4

1 回答 1

3

使用 jQuery 验证类的最佳方法是通过.hasClass(). 如果元素有多个类,它将无法正确匹配.attr()您正在使用的相等测试。

// If it doesn't have the class 'photos', do your AJAX call
if( !$("#left-content").hasClass('photos'))
{       
   alert("content is not photos"); 
  SlideOut(move);
 $("#relativeContainer").css('z-index','-1');
 // Then do the AJAX, etc...
}
// Otherwise do the other stuff...
// Unless you have another case not shown in your code above,
// this can just be a plain else {} rather than the else if {}
else if ($("#left-content").hasClass('photos'))
{
  SlideOut(move); 
  $("#relativeContainer").css('z-index','-1');
  alert('content is photos');
}
于 2012-11-01T01:33:36.643 回答