Jquery没有正确绑定

时间:2012-02-23 01:01:29

标签: jquery javascript-events

我有一个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是一个链接集合(现在)链接回一些内容。我正在尝试将点击事件分配给每个链接,以便将鼠标悬停在该链接上,将其源视频广播到iframe中。我想在原始链接中保留原始链接信息,这样如果禁用了javascript,链接就会转到内容。

windw.frames语句应该重新加载iframe但我还没有足够的时间来测试它。

脚本获取正确的href,它只是没有正确绑定它。我认为$(this)语句是正确的,我登录到控制台并获取我想要的链接,但由于某种原因,事件不绑定?

这是我以前遇到过麻烦的一个领域,特别是在每个()循环中混合使用javascript和jquery。我真的很有见地。感谢

1 个答案:

答案 0 :(得分:1)

您的代码中需要指出一些事项。您将links声明为数组,用一组jQuery对象覆盖它,并在调用each()循环时将其双重包装在jQuery对象中......没有多大意义。

要调用一个不需要each()循环的事件,您可以在jQuery集合上调用它。您在循环中使用的两个$(this)具有误导性,您应该首先将其缓存为var that = $(this)。此外,不再使用bind()。您可以使用on()click()快捷方式 传入新src时,iframe应该刷新。看看Ajax Reload iframe

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

$links.mouseenter(function(){
    $frame.attr('src', $(this).attr('href'));
}); 
相关问题