[英]code fails to work outside a jsFiddle
我的目标是制作一个包含交互式视频的网页,在这里进行搜索时,我遇到了一个指向适合我的jsFiddle的链接。
由于该代码在jsFiddle上运行良好,当我尝试将其复制到DreamWeaver中时,它崩溃了(似乎JavaScript已停止工作)。
我把所有这些放在一起:
<html>
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="sgrub.js"></script>
<script>
$('#video_1, #video_2').hide();
$('.icon_1').click(function() {
$('#video_2').fadeOut(function() {
$('#video_1').fadeIn();
});
});
$('.icon_2').click(function() {
$('#video_1').fadeOut(function() {
$('#video_2').fadeIn();
});
});
$('.icon_1').click(function() {
$('.video_2').get(0).pause();
$('.video_2').get(0).currentTime = 0;
$('.video_1').get(0).play();
});
$('.icon_2').click(function() {
$('.video_1').get(0).pause();
$('.video_1').get(0).currentTime = 0;
$('.video_2').get(0).play();
});
</script>
<head></head>
<body>
<div class="icon_1" id="mediaplayer">
cadillac
</div>
<div class="icon_2" id="mediaplayer2">
nike
</div>
<div id="video_1">
<video class="video_1" width="50%" height="50%" controls="controls"
poster="http://www.birds.com/wp-content/uploads/home/bird.jpg">
<source src="http://video-js.zencoder.com/oceans-clip.mp4"
type="video/mp4" />
</video>
</div>
<div id="video_2">
<video class="video_2" width="50%" height="50%" controls="controls"
poster="http://www.birds.com/wp-content/uploads/home/bird.jpg">
<source src="images/01.mp4" type="video/mp4" />
</video>
</div>
</body>
</html>
我尝试将JavaScript包装在jQuery DOM ready调用中,无济于事:
$(document).ready(function() {
// The JavaScript here
});
在DOM准备就绪之前,您的jQuery代码正在运行,因此您的jQuery代码在页面中找不到任何对象,因此它们什么也不做。 您应该在加载DOM项之后将其定位在正文的末尾,或者使用jQuery(document).ready()使您的代码等待DOM准备就绪。
您的jsFiddle设置为仅在加载DOM之后运行代码,这可能就是它在jsFiddle中起作用的原因。
将代码更改为此:
<script>
$(document).ready(function() {
$('#video_1, #video_2').hide();
$('.icon_1').click(function(){
$('#video_2').fadeOut(function(){
$('#video_1').fadeIn();
});
});
$('.icon_2').click(function(){
$('#video_1').fadeOut(function(){
$('#video_2').fadeIn();
});
});
$('.icon_1').click(function(){
$('.video_2').get(0).pause();
$('.video_2').get(0).currentTime = 0;
$('.video_1').get(0).play();
});
$('.icon_2').click(function(){
$('.video_1').get(0).pause();
$('.video_1').get(0).currentTime = 0;
$('.video_2').get(0).play();
});
});
</script>
您可能还想修复脚本标签的位置。 它们应该位于<head>
标记内或<body>
标记内。 您都没有(在<head>
标记之前)。 大多数浏览器可能会容忍,但从技术上讲不是一个好主意。
将头移到html之后
所以看起来
<html>
<head>
<script...etc..
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.