2014-09-05 3 views
0

Я работаю на пользовательский Wordpress сайте, который имеет много JavaScript (все разработанное другой разработчик)JQuery: Скрипт работает в консоли, но не в прикрепленном файле

Я пытаюсь добавить сценарий в нижней части файла scripts.js, и он не работает повсюду. Он работает в консоли. Он работает в firefox. Он находится внутри собственной функции документа. Документ готов к работе (я использовал предупреждение, чтобы проверить это), однако мое предупреждение, консольный журнал и сценарий внутри этой функции готовности к доктору будут работать только внутри консоли (или 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

+0

@TusharGupta не имеет значения, 'готов()' обрабатывает это. –

+0

В любом случае это внизу страницы. – MandsAtWork

ответ

0

Я предполагаю, что это связано с тем, что ваш видео элемент фактически не присутствует или отключается после того, как готово событие срабатывает.

Возможно, что 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

+0

"с фильтром« видео ». - Чтобы лучше назвать его, это называется делегирование событий -> http://learn.jquery.com/events/event-delegation/ – RaphaelDDL

+0

Также выясняется, что firefox имеет эту функцию по умолчанию - так что мой скрипт не был фактически работая над firefox, это было просто поведение по умолчанию. – MandsAtWork

0

Возможно, это проблема с различными JS-двигателями!

Пробовал ли вы, что произойдет, если вы переместите jQuery('video').click(function(){console.log(this);}); в готовую часть старого источника файла?

+0

Просто попробовал это - снова он работает в консоли, но не внутри файла сценария (даже если он находится внутри другой рабочей части файла). Что мне здесь не хватает? – MandsAtWork

Смежные вопросы