簡體   English   中英

PHP 和 jQuery 功能——只能工作一次?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM