如何在ajax加载后返回jquery?

时间:2016-01-04 22:18:17

标签: javascript jquery ajax

我在我的index.php中的div容器中发出了ajax请求,并且在我的一个页面中通过ajax加载我有这个jquery函数:



$(document).ready(function(){
	
	var section = document.querySelector('.vs-section');
	var divs = document.querySelectorAll('.vs-transform');
			
	var smooth = new Smooth({
				direction: 'horizontal',
				section: section,
				ease: 0.1,
				els: divs
			});
			smooth.init();
});




如果我发出ajax请求,此功能不起作用。 但如果我插入我的



<script src="js/jquery-1.11.2.min.js"></script>
&#13;
&#13;
&#13;

在这个页面内它正在工作,但问题是我已经在我的index.php中加载了jquery所以它加载了2次所以我怎么能让我的jquery工作而不重新加载它作为补间?

这是我的ajax:

&#13;
&#13;
$(document).ready(function(){
	
    $("#menu a").click(function(){ 
       page=$(this).attr("href");
        $.ajax({
            url: "pages/"+page,
            cache:false,
            success:function(html){
                afficher(html);
				history.pushState({key : 'value'}, 'hash', page);
            }, 
            error:function(XMLHttpRequest,textStatus, errorThrown){
                afficher("erreur lors du chagement de la page");
            }
        });
        return false;
    });
	
     $('#container').on('click', '.vs-transform a', function(){
	 var page=$(this).attr("href");
        $.ajax({
            url: "pages/"+page,
            cache:false,
            success:function(html){
               	afficher(html);
				history.pushState({key : 'value'}, 'hash', page);
            },
            error:function(XMLHttpRequest,textStatus, errorThrown){
                afficher ("erreur lors du chagement de la page");
            }
        });
        return false;
	}); 
window.onpopstate = function(event){
		if(event.state === null){
			   // alert('bien');
		}
	};
});

		
function afficher(data){
$("#container").delay( 100 ).fadeOut(400,function(){
    $("#container").empty();				
    $("#container").append(data);
    $("#container").fadeIn(500);	
});
}
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

假设afficher()函数将加载的代码附加到DOM,您可以尝试这样的事情:

 $('#container').on('click', '.vs-transform a', function(){
     var page=$(this).attr("href");
        $.ajax({
            url: "pages/"+page,
            cache:false,
            success:function(html){
                afficher(html);
                history.pushState({key : 'value'}, 'hash', page);
                //HERE THE INNER PAGES CODE
                if(page==="yorpagehere.html"){    
                   //here code for yourpagehere.html
                   var section = document.querySelector('.vs-section');
                   var divs = document.querySelectorAll('.vs-transform');

                   var smooth = new Smooth({
                       direction: 'horizontal',
                       section: section,
                       ease: 0.1,
                       els: divs
                   });
                   smooth.init();

                }
            },
            error:function(XMLHttpRequest,textStatus, errorThrown){
                afficher ("erreur lors du chagement de la page");
            }
        });
        return false;
    // ....

EDIT。这应该适用于延迟

$(document).ready(function(){

    $("#menu a").click(function(){ 
       page=$(this).attr("href");
        $.ajax({
            url: "pages/"+page,
            cache:false,
            success:function(html){
                afficher(html, page);
                history.pushState({key : 'value'}, 'hash', page);
            }, 
            error:function(XMLHttpRequest,textStatus, errorThrown){
                afficher("erreur lors du chagement de la page");
            }
        });
        return false;
    });

     $('#container').on('click', '.vs-transform a', function(){
     var page=$(this).attr("href");
        $.ajax({
            url: "pages/"+page,
            cache:false,
            success:function(html){
                afficher(html, page);
                history.pushState({key : 'value'}, 'hash', page);
            },
            error:function(XMLHttpRequest,textStatus, errorThrown){
                afficher ("erreur lors du chagement de la page");
            }
        });
        return false;
    }); 
window.onpopstate = function(event){
        if(event.state === null){
               // alert('bien');
        }
    };
});


function afficher(data, page){
$("#container").delay( 100 ).fadeOut(400,function(){
    $("#container").empty();                
    $("#container").append(data);
    $("#container").fadeIn(500);
    if(page==="yorpagehere.html"){    
        //here code for yourpagehere.html
        var section = document.querySelector('.vs-section');
        var divs = document.querySelectorAll('.vs-transform');

        var smooth = new Smooth({
           direction: 'horizontal',
           section: section,
           ease: 0.1,
           els: divs
         });
         smooth.init();

      }
});
}