2010-11-08 16 views
0

我想學習一些更高級的java腳本模式,同時使用jQuery來緩解jQuery的一些ajax難度。但是,我一直在跑向沒有錯誤的問題。在對象文字中調用jQuery.load

我希望能夠調用ajaxCalls.setup({})並讓它將傳遞給安裝程序的對象替換爲默認值。我有那部分工作。我似乎遇到的問題是ajax調用。當callIt函數運行時,$(this.defaults.element).load(....)不運行,或者運行失敗。我很難過。我真的只是想學習新的東西。我希望得到任何幫助

<html> 
    <head> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script> 
     <script> 
      var ajaxCalls = (function($){ 

       var ajaxer = {     

        defaults:{ 
         url:"test.php", 
         element:"#ajaxerizer" 
        }, 

        setup:function(setup){    
         var defaulLengther = this.defaults 
         /*var l = 0;*//*bug*/ 
         for (var key in defaulLengther) 
         { 
          if(setup.hasOwnProperty(key)) 
          { 
           this.defaults[key] = setup[key]; 
           /*l++;*//*bug*/ 
          } 
         } 
         /*debugger*/ 
         /*for(var i=0; i < l; i++) 
         { 
          alert(this.defaults.power); 
         } */  
         this.callIt(); 
        }, 

        callIt:function(){ 
         $(this.defaults.element).load(this.defaults.url, function(){alert("success");}); 
        }, 


       } 
       return ajaxer 

      })(jQuery); 

      ajaxCalls.setup({}) 
     </script> 

    </head> 
    <body> 

     <div id="ajaxerizer"></div> 

    </body> 
</html> 

謝謝你的幫助test.php的只是有這它

<p>IT WORKED</p> 

記:在這個項目中我打算只使用jQuery的DOM選擇和AJAX調用

回答

0

你需要設置你的ajaxCalls.setup在頁面加載後使用document.ready 例如。

$(document).ready(function(){ 
     ajaxCalls.setup({}) 
    }); 

否則,你正試圖在加載html之前替換你的div。