2014-09-05 80 views
0

我的工作,有很多的javascript(所有其他开发人员开发)JQuery的:脚本是工作在控制台,但不是在附加文件

我想一个脚本添加到自定义WordPress站点scripts.js文件的底部,它不能在任何地方工作。它在控制台中工作。它在Firefox中工作。 这是它自己的文档准备功能。 准备就绪的文档正在工作(我使用了一个警报来测试这个),但是我的alert,控制台日志和脚本在这个doc准备好的函数中只能在控制台(或者firefox)中使用,但不能从scripts.js文件中铬和徒步旅行队。

这里是我的代码(这是进行视频播放和暂停在视频窗口点击,而不仅仅是播放控制)

jQuery(document).ready(function() { 
    // alert('working') 
    /** 
    * This module controls the video players 
    */ 
     jQuery('video').click(function(){ 
     //alert('working'); 
     this.paused?this.play(): 
     this.pause(); 
     //console.log(this); 
    }); 

}); 

任何帮助是极大的赞赏。

+0

尝试在页面 – Tushar 2014-09-05 19:08:01

+0

@TusharGupta不应该的问题,'准备好()'处理该底部添加。 – 2014-09-05 19:10:31

+0

反正它在页面的底部。 – MandsAtWork 2014-09-05 19:18:37

回答

0

我假设这是因为您的视频元素实际上并不存在,或者在ready事件触发后切换出来。

在事件准备好之前,Firefox可能正在加载视频元素,但这可能会因javascript和html的解释速度而有所不同。

不是将事件直接放在“视频”元素上,而是将其放置在具有“视频”过滤器的文档上。

http://jsfiddle.net/2kmxL1h4/1/

jQuery(document).on('click', 'video', function() { 
     //alert('working'); 
     this.paused ? this.play() : this.pause(); 
     //console.log(this); 
    }); 
+0

非常感谢!那就是诀窍。 – MandsAtWork 2014-09-05 19:53:12

+0

“文件和”视频“过滤器。” - 只是为了更好地命名它,这就是所谓的事件委托 - > http://learn.jquery.com/events/event-delegation/ – RaphaelDDL 2014-09-05 20:14:43

+0

另外,事实证明,Firefox默认有这个功能 - 所以我的脚本不是实际上在Firefox上工作,这只是默认行为。 – MandsAtWork 2014-09-06 01:03:21

0

也许这是不同的JS引擎的问题!

如果您将jQuery('video').click(function(){console.log(this);});移动到旧文件源的准备部分中,您是否尝试过会发生什么?

+0

刚刚尝试过 - 它再次在控制台中工作,但不在脚本文件中(即使它在文件的另一个工作部分中)所以我在这里错过了什么? – MandsAtWork 2014-09-05 19:44:24

相关问题