[英]How to call JQuery functions after page is loaded?
我有一個帶有按鈕的頁面。 當按下按鈕時,將進行AJAX調用,然后該調用中的html替換我在主頁上擁有的div容器。 我有需要在第二頁上加載的腳本。 因此,我擔心的是,當第二頁中的腳本正在運行時,它在控制台中給我一個“ Object#has no method'find'”錯誤。 我知道這是腳本無法調用JQuery函數的問題。 有人知道第二頁生成后如何調用JQuery函數嗎? 這是有關我的頁面功能的示例:
主頁:
<html>
<head>
<script type="text/javascript">
$(document).ready({
$('body').on('click', '.button', function() {
$.ajax({
type: 'GET',
url: 'page.php'
data { ... },
success: function(e){
$('#container').html(e);
}
});
});
});
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
</head>
<body>
<button class="button" value="Click me!"></button>
<div id="container">
</div>
</body>
</html>
page.php文件:
echo '<div id="dropbox">';
echo ' <div class="message">Drop files here</i></div>';
echo '</div>';
echo '<script src="js/filedrop.js"></script>';
echo '<script src="js/upload.js"></script>';
然后,當從第二頁執行腳本時,我得到<對象號沒有方法'查找'>錯誤。 如果我在主頁上包含腳本,則腳本中沒有任何內容。 有人知道該為所有這些工作指明正確的方向嗎?
編輯**
抱歉讓你們困惑。 我輸入的代碼只是我很快組合在一起的內容。 按鈕單擊代碼將在document.ready中,但是從第二個腳本調用的其他函數不在document.ready中。 他們是否需要在document.ready回調中才能識別JQuery函數?
編輯2 **
感謝您澄清您可以擁有多個Document.Readys。 10分鍾后,我將選擇答案。
您的腳本標簽順序錯誤。 您必須先加載jQuery,然后才能使用它。 同樣,將所有與DOM交互的代碼放在$(document).ready()
回調中:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('body').on('click', '.button', function() {
$.ajax({
type: 'GET',
url: 'page.php'
data { ... },
success: function(e){
$('#container').html(e);
}
});
});
});
</script>
將您的代碼放入
$(document).ready(function() {
// your code
$('body').on('click', '.button', function() {
$.ajax({
type: 'GET',
url: 'page.php'
data { ... },
success: function(e){
$('#container').html(e);
}
});
});
});
document.ready表示該頁面已加載或創建文件myscript.js ,在該文件中,將所有代碼包裝在document.ready中,
echo '<script src="js/myscript.js"></script>';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.