Jquery не связывает должным образом - PullRequest
1 голос
/ 23 февраля 2012

У меня проблема с Jquery, которую я не могу решить:

(function ($) {
var links = new Array();
var vidFrame = document.getElementById('videoFrame');
links = $('.video');

$(links).each(function() {
    $(this).bind('mouseenter', function() {
         $(vidFrame).attr('src',$(this).attr('href'));        
       window.frames[0].location.reload();
});
});

}(jQuery));

vidFrame - это iframe, links - это набор ссылок, которые (прямо сейчас) ссылаются на некоторый контент. Я пытаюсь получить событие click, назначенное каждой ссылке, чтобы при наведении мыши на эту ссылку транслировалось исходное видео в iframe. Я хочу оставить исходную информацию о ссылке в a href, чтобы, если javascript отключен, ссылки просто перенаправляли вас на контент.

Утверждение windw.frames якобы перезагружает iframe, но я не успел достаточно проверить его.

Скрипт получает правильную ссылку, он просто не связывает его должным образом. Я думаю, что оператор $ (this) определен правильно, я входил в консоль и получал нужные ссылки, но по какой-то причине события не связываются?

Это та область, с которой у меня были проблемы прежде, особенно смешивая javascript и jquery в цикле each (). Я действительно был бы в любом понимании. Спасибо

1 Ответ

1 голос
/ 23 февраля 2012

В вашем коде есть несколько моментов, на которые следует обратить внимание.Вы объявляете links как массив, перезаписываете его коллекцией объектов jQuery и дважды оборачиваете в объект jQuery при вызове цикла each() ... не имеет большого смысла.

Чтобы вызвать событие, вам не нужен цикл each(), вы можете просто вызвать его в коллекции jQuery.Два $(this), которые вы используете внутри цикла, вводят в заблуждение, вы должны сначала их кэшировать, например var that = $(this).Также bind() больше не используется.Вы можете использовать on() или ярлык click().
Iframe должен обновиться, когда вы передадите новый src.Посмотрите на Ajax Reload iframe .

var $links = $('.video'),
    $frame = $('#videoFrame');

$links.mouseenter(function(){
    $frame.attr('src', $(this).attr('href'));
}); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...