代码无法在 jsFiddle 之外工作
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就绪调用中,但无济于事:
$(document).ready(function() {
// The JavaScript here
});
你的jQuery代码在DOM准备好之前就已经运行了,所以你的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..
相关文章:
- 代码只能在jsfiddle中工作
- JavaScript获胜't运行,但在jsFiddle中工作
- 为什么jquery悬停在jsfiddle中可以工作,而在我的html布局中却不能
- 我需要把jsFiddle的脚本放到工作中
- 代码在jsfiddle中工作,但在本地服务器中不起作用
- 尝试让AngularJS在JSFiddle中工作
- jQuery和其他从工作的jsfiddle复制到本地env时未运行的JS
- 在JSFiddle上工作,但不在本地工作
- 可以'我似乎无法让这个jsfiddle在本地工作.
- 为什么我的JSFiddle不工作?(放置脚本的位置)
- 正在jsfiddle.net上工作,但不在我的笔记本电脑上
- 为什么jQuery可以在jSfiddle中工作,但不能在站点中工作
- 当我尝试在jsFiddle中暂停并播放时,我的代码可以工作,但它不起作用;我的html页面不起作用
- 我如何才能让我的代码像在jsfiddle中一样工作
- jsFiddle工作,网站JS不工作
- 代码在 jsfiddle 中工作,但在我的网站上不起作用
- 我的jQuery在JSFiddle中工作,但不能在我的网站上工作!我做错了什么
- jQuery, bootstrap: input.val() 是未定义的,即使 jsfiddle 工作正常
- jQuery适用于JSFiddle,但不能在本地工作
- 代码工作 jsfiddle 不适用于 dreamweaver