2013-10-19 26 views
0
$(document).ready(function(){ 
    function loadURL(url){ 
     $('#ajax').load(url, function(){ 
      history.pushState('', 'My Website', baseurl + url); 
     }); 
    } 

    $(document).on('click', 'a[rel!=external]', function(event){ 
     event.preventDefault(); 
     loadURL($(this).attr('href')); 

    }); 
}); 

Hello again stackoverflow!在jQuery加載後在jQuery中加載自定義的書寫函數

我有一些通過AJAX加載的內容。現在,我想加載link.html,至極包含這段代碼:

<script> 
    loadURL('code.txt'); 
</script> 

,使其加載link.html後,直接裝入code.txt

不幸的是,調用已在$(document).ready()內創建的函數似乎沒有工作,因爲它由於某種原因未定義。所以我試了

<script> 
    $(document).ready(function(){ 
     loadURL('code.txt'); 
    }); 
</script> 

但是這似乎並不奏效。

有沒有解決方案呢?

回答

0

這是因爲函數loadURL在另一個函數中聲明,所聲明的函數對於容器函數是私有的。

解決方案是將其聲明爲全局函數,因爲您也想從其他上下文中調用該函數。它不會創建與dom就緒狀態相關的問題,因爲在dom就緒回調中調用該函數。

function loadURL(url){ 
    $('#ajax').load(url, function(){ 
     history.pushState('', 'My Website', baseurl + url); 
    }); 
} 
$(document).ready(function(){ 
    $(document).on('click', 'a[rel!=external]', function(event){ 
     event.preventDefault(); 
     loadURL($(this).attr('href')); 

    }); 
});