簡體   English   中英

嘗試使用jquery加載隨機圖像-不起作用

[英]Trying to load random images using jquery — Not working

我是javascript和jquery的新手。 我想在加載頁面時加載隨機圖像。 我發現了一些看起來很簡單的代碼,但似乎無法使其正常工作,而且我不知道自己在做什么錯。 一切對我來說都很好。

我的HTML如下:

<html xmlns="http://www.23.org/19999/xhtml">
<head>
    <title>A  Site Just For Me!</title>
    <script type="text/javascript" src="jquery.min.js"></script>
    <link href='http://fonts.googleapis.com/css?family=Economica:400,700|Francois+One' rel='stylesheet' type='text/css'>

    <script type="text/javascript" src="myjs.js"></script> 
    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">

    <!-- Optional theme -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap-theme.min.css">

    <!-- Latest compiled and minified JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>

    <link rel="stylesheet" type="text/css" href="me_css.css">

</head>

<body >         
    <div class="jumbotron">
        <div class="container">
            <div class="greeting"></div>
            <div id="happypic"></div>
            <div id="banner"></div>
            <div id="banner2"></div>
        </div>
    </div>
</body>
</html> 

這是我的JavaScript文件:

// A $( document ).ready() block.
$( document ).ready(function() {

});

//This is where i set up my greeting.

var nowDate=new Date();
var nowHour=nowDate.getHours();
var greeting;

if (nowHour<11)
{
    //good morning
    greeting="Good morning";
}   
else if (nowHour<16)
     {
        //good afternoon
        greeting="Good afternoon";
     }
     else 
     {
        //good evening
        greeting="Good evening";
     }
//document.write("<center><h1>"+greeting+", Loser!");//

// This is where i put my random picture chooser
// pictures

//random image experiment

var hawaiiPix=new Array("hawaii1.jpg", "hawaii2.jpg", "hawaii3.jpg", "hawaii4.jpg", "hawaii5.jpg");
$('<img src="img/'+hawaiiPix[Math.floor(Math.random()*hawaiiPix.length)]+'">"').appendTo('#happypic');

var images = ["hawaii1.jpg", "hawaii2.jpg", "hawaii3.jpg", "hawaii4.jpg", "hawaii5.jpg"];
$('<img src="images/' + images[Math.floor(Math.random() * images.length)] + '">').appendTo('#banner');

$('<h1>Hello</h1>').appendTo('#banner2');

任何見解將不勝感激...

問題是您的jQuery代碼在ready函數之外,因此它在DOM加載之前就已在運行,因此它無法添加圖像,因為這些元素在HTML頁面中尚不存在。

一種方法是將myjs.js文件的加載放在</body>之前,以便在其執行時加載項目(您需要刪除jQuery.ready代碼),或者可以將其放入ready塊中,如下所示:

$( document ).ready(function() {
 //This is where i set up my greeting.
    var nowDate=new Date();
    var nowHour=nowDate.getHours();
    var greeting;

    if (nowHour<11)
    {
        //good morning
        greeting="Good morning";
    }   

    else if (nowHour<16)
    {
        //good afternoon
        greeting="Good afternoon";
    }
    else 
    {
        //good evening
        greeting="Good evening";
    }
    //document.write("<center><h1>"+greeting+", Loser!");//

    // This is where i put my random picture chooser
    // pictures

    //random image experiment

    var hawaiiPix=new Array("hawaii1.jpg", "hawaii2.jpg", "hawaii3.jpg", "hawaii4.jpg", "hawaii5.jpg");
    $('<img src="img/'+hawaiiPix[Math.floor(Math.random()*hawaiiPix.length)]+'">"').appendTo('#happypic');

    var images = ["hawaii1.jpg", "hawaii2.jpg", "hawaii3.jpg", "hawaii4.jpg", "hawaii5.jpg"];
    $('<img src="images/' + images[Math.floor(Math.random() * images.length)] + '">').appendTo('#banner');


    $('<h1>Hello</h1>').appendTo('#banner2');
});

最好的方法是將jQuery和JS文件的加載移到html代碼的底部。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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