jQuery的不具约束力正确
我有一个jQuery的问题,我不能让过去: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,链接是链接的集合,(现在)链接返回到一些内容。我正在尝试获取分配给每个链接的点击事件,以便通过该链接进行鼠标悬停,将其源视频广播到iframe中。我想在href中保留原始链接信息,这样如果javascript被禁用,链接会将您带到内容中。
windw.frames声明应该重新载入iframe,但我还没有足够的测试它。
该脚本得到正确的href,它只是没有正确地绑定它。我认为$(this)语句的范围是正确的,我登录到控制台并获取我想要的链接,但出于某种原因事件不能绑定?
这是我以前遇到过的麻烦,特别是在each()循环内混合使用javascript和jquery。我真的会有任何见解。谢谢
在代码中有几点需要注意。你声明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'));
});
)这是特殊的帮助,谢谢。我收集,如果绑定已被弃用,这将解释为什么我'数组声明是一个快速修复,在我明确声明之前,每个都只从第一个链接中分配href(我不明白这一点),感谢帮助,我会给它一枪。 – user173361 2012-02-23 01:26:59
我不明白你为什么首先将“链接”定义为一个新的数组,然后将其分配给具有视频类的元素?此外,从版本7.1开始,绑定已被弃用。使用$(this).on('mouseenter',,,或$(this).mouseenter(函数(... – 2012-02-23 01:16:13