2014-09-05 79 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

相關問題