簡體   English   中英

如何將html腳本轉換為.js文件腳本

[英]how to convert an html script into a .js file script

想要將腳本放入已經打開的.js文件中

$(document).ready(function() {

    });

我已經嘗試過,但是感覺很像,因為我將onMouse over命令放到html中,我認為這不可能嗎?

    <head>
        <style>
            div > p {
                cursor: pointer;
            }
        </style>

        <script>
            var monkeySrc = "http://icons.iconarchive.com/icons/martin-berube/animal/256/monkey-icon.png";
            var lionSrc = "http://icons.iconarchive.com/icons/martin-berube/animal/256/lion-icon.png";
            var treeSrc = "http://totaltreeworks.co.nz/wp-content/uploads/2011/02/Tree-256x256.png";
            var falconSrc = "http://icons.iconarchive.com/icons/jonathan-rey/star-wars-vehicles/256/Millenium-Falcon-01-icon.png";

            function changeImage(src){
                document.getElementById("myImage").src = src;
            }

        </script>
    </head>

    <body>
        <div class="images">
            <img id="myImage" width="256" height="256">
        </div>

        <div>
            <p onmouseover="changeImage(monkeySrc)">Monkey are funny!</p>
        </div>

        <div>
            <p onmouseover="changeImage(lionSrc)">Lions are cool!</p>
        </div>

        <div>    
            <p onmouseover="changeImage(treeSrc)">Trees are green!</p>
        </div>

        <div>
            <p onmouseover="changeImage(falconSrc)">Falcons are fast!<p>
        </div>
    </body>
</html>

如果要使用現有的JavaScript並將其放置在外部文件中,它將可以正常工作。 因為所有變量和函數都在全局范圍內,所以它將起作用。

再進一步,您將需要將那些onmouseover事件處理程序移至JavaScript本身。

對您當前的HTML進行少量更改,並假設使用jQuery,您可以執行以下操作:

<p data-kind="monkey">Monkey are funny!</p>

然后

var urlMap = {
  monkey : 'http://icons.iconarchive.com/icons/martin-berube/animal/256/monkey-icon.png'
...
};

$('p').on('mouseover', function () {
  var kind = $(this).data('kind');
  var url = urlMap[kind];
  changeImage(url);
});

然后,您可以將其包裝在$(document).ready ,其簡寫只是$(function () { /* The code from above here */ });

您需要從.js文件中以編程方式綁定事件處理程序。 jQuery將使這一過程變得非常簡單,並允許您使用任意CSS選擇器,但是您可以在純JS中使用document.getElementByIddocument.addEventListener

您可以使用JavaScript addEventListner將函數綁定到事件

1-為每個段落標簽添加id屬性

   <p id="p1"> .....</p>

2-抓住一個指向每個變量的變量

var p1 = document.getElementById('p1');

3-添加事件列表

p1.addEventListener("mouseover", changeImage(monkeySrc));

如果將javascript代碼放在另一個文件中,並用HTML文件中的<script src="javascriptcodefilename.js"></script>替換<script>...</script> ,它仍然可以正常工作。

示例: http//codepen.io/anon/pen/waLqxz

將所有URL添加到以鍵為鏈接名稱的數組中可能會更清潔,因此您將擁有urls ['lionSrc'] =“ www.xyz.com”;之類的東西。

然后在您的changeImage函數中,您將執行document.getElementById(“ myImage”)。src = url [src];

這樣,您甚至可以檢查圖像是否已經存在,如果不存在,則顯示“找不到圖像”圖標。

暫無
暫無

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

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