[英]PHP and jQuery function—only works once?
我有以下 function。 當我第一次點擊時,它返回一個隨機數,但所有后續點擊總是返回相同的數字。 怎么不刷新?
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#btn-get-random-image').click(function () {
$('#my-img').attr('src', '<?php echo $pics[array_rand($pics, 1)]; ?>');
});
});
</script>
這是因為您使用 PHP 來生成隨機數,並且不可能在對 JS function 的調用中刷新它——它已嵌入到 Z4C4AD5FCA2E7A3F74DBB1CED00381 中。
也許你也可以使用live
like 而不是click
$(document).ready(function(){
$('#btn-get-random-image').live("click", function () {
// your works here
}
});
還可以查看jquery 直播
您的 PHP 正在創建 JS 代碼,該代碼會在頁面呈現時發送到瀏覽器一次。 對 JS function 的每次調用都會運行 function,因為它在呈現頁面時存在。
正如其他人所說,您使用的是 PHP,它在服務器上執行一次並作為原始 output 發送,因此圖像不會改變。 嘗試這個!
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
var myPics = <?php echo json_encode($pics); ?>;
$(document).ready(function() {
$('#btn-get-random-image').click(function () {
var index;
do {
index = Math.floor(Math.random() * myPics.length);
} while ( typeof myPics[index] == 'undefined' );
$('#my-img')
.attr('src', myPics[index]);
});
});
</script>
這使用 PHP 的 JSON 編碼器將您的數組轉儲到 javascript,然后您的 function 從該數組中隨機選擇要顯示的圖像。 do/while
循環可能不是必需的,我的測試顯示在數千次迭代中分布非常好,幾乎均勻,但它仍然存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.