[英]how to call a function from javascript to html
當我通過不同的 javascript 文件鏈接它時,我無法調用這些函數我想將它調用到我的 HTML 我應該怎么做我嘗試添加腳本文件但它不起作用
<html>
<head>
<link href="home.css" rel="stylesheet" type="text/css">
<script type="application/javascript" src="jj.js"></script>
</script>
</head>
<body>
<div class="container" id="showSlides()">
<div class="image-sliderfade fade">
<img src="img1.png" style="width:100%">
</div>
<div class="image-sliderfade fade">
<img src="img2.png" style="width:100%">
</div>
<div class="image-sliderfade fade">
<img src="img3.png" style="width:100%">
</div>
<div class="dotcontainer">
<span class="dot"></span>
<span class="dot"></span>
<span class="dot"></span>
</div>
</div>
<body>
<head>
現在這是我的 .js 文件
function showSlides() {
var i;
var slides = document.getElementsByClassName("image-sliderfade");
var dots = document.getElementsByClassName("dot");
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
slideIndex++;
if (slideIndex > slides.length) {
slideIndex = 1;
}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace(" active", "");
}
slides[slideIndex - 1].style.display = "block";
dots[slideIndex - 1].className += " active";
setTimeout(showSlides, 4000);
}
<html>
<head>
<link href="home.css" rel="stylesheet" type="text/css">
</head>
<body onload="showSlides()">
<div class="image-sliderfade fade">
<img src="img1.png" style="width:100%">
</div>
<div class="image-sliderfade fade">
<img src="img2.png" style="width:100%">
</div>
<div class="image-sliderfade fade">
<img src="img3.png" style="width:100%">
</div>
<div class="dotcontainer">
<span class="dot"></span>
<span class="dot"></span>
<span class="dot"></span>
</div>
</div>
<script type="application/javascript">
function showSlides() { var i;
var slides = document.getElementsByClassName("image-sliderfade");
var dots = document.getElementsByClassName("dot");
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
slideIndex++;
if (slideIndex > slides.length) {
slideIndex = 1;
}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace(" active", "");
}
slides[slideIndex - 1].style.display = "block";
dots[slideIndex - 1].className += " active";
setTimeout(showSlides, 4000);
}
</script>
</body>
</html>
您已包含該文件。 但是,您永遠不會執行所有代碼所在的函數。這可能是原因。
嘗試以下操作:在jj.js
第 1 jj.js
(在函數之前)寫console.log('this is jj.js');
並運行頁面。 在您的控制台(網絡檢查器)中,您應該看到消息“這是 jj.js”,這意味着腳本標記正在執行它的操作。
然后刪除控制台日志(您不需要它)並確保您的代碼不在函數內(因此只需刪除它)或通過執行以下操作來調用該函數:
showSlides(); function showSlides() { console.log('Init function')}
您可以更改第二個代碼片段以在頁面加載時也執行該功能,例如:
<link href="home.css" rel="stylesheet" type="text/css">
<script type="application/javascript" src="jj.js"></script>
<script>
window.onload = function () {
showSlides();
}
</script>
您可以像這樣構建一個自執行函數:
(function() {
var i;
var slides = document.getElementsByClassName("image-sliderfade");
var dots = document.getElementsByClassName("dot");
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
slideIndex++;
if (slideIndex > slides.length) {
slideIndex = 1;
}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace(" active", "");
}
slides[slideIndex - 1].style.display = "block";
dots[slideIndex - 1].className += " active";
setTimeout(showSlides, 4000);
})();
我沒有測試您的功能是否有效,我只是將其復制並粘貼到我的答案中。 如果您使用的是 jQuery,那么您可以在加載文檔時調用它:
jQuery(document).ready(function(){
Your function call here.....
});
<link href="home.css" rel="stylesheet" type="text/css">
<script type="application/javascript" src="jj.js"></script>
您可以為此使用 jQuery 或純 javascript
// use dom elements
<script>
document.addEventListener('DOMContentLoaded', function() {
showSlides()
}, false);
</script>
DOMContentLoaded 事件在初始 HTML 文檔完全加載和解析后觸發,無需等待樣式表、圖像和子框架完成加載。
// use below function
<script>
(function () {
showSlides()
})();
</script>
這是一個立即調用的函數表達式。 它在創建后立即執行。
// jQuery function
<script>
$(function() {
showSlides()
});
</script>
// use window event
<script>
window.onload = function() {
showSlides()
};
</script>
它在整個頁面加載時觸發,包括其內容(圖像、CSS、腳本等)
<script>
$(document).ready( function () {
showSlides()
})
</script>
它在 DOM 准備好時觸發,這可以在加載圖像和其他外部內容之前。
在您的 jj 腳本中添加上述功能之一
將您的參考更改為
<script type="text/javascript" src="jj.js"></script>
在腳本jj.js
任何地方調用你的showSlides()
。 例如
function showSlides(){
//Function body goes here
}
showSlides();
但最好是把它onload
無論是JavaScript的window.onload
或jQuery的$(document).ready(function(){ showSlides()})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.