Jquery Fancybox iframe说我的YouTube href未定义
这是我的HTML:Jquery Fancybox iframe说我的YouTube href未定义,jquery,iframe,youtube,fancybox,Jquery,Iframe,Youtube,Fancybox,这是我的HTML: <a class="video iframe" href="http://www.youtube.com/watch?v=Psk2Pq03rv0&fs=1">Arbitrary text</a> 因此,单击此链接会将用户带到YouTube,而不会触发Fancybox。 将有问题的行更改为'href]:this.href.replace(新的RegExp(“watch?v=“,“i”),“v/”),,这对我来说似乎更正确,会产生相同的结
<a class="video iframe" href="http://www.youtube.com/watch?v=Psk2Pq03rv0&fs=1">Arbitrary text</a>
因此,单击此链接会将用户带到YouTube,而不会触发Fancybox。
将有问题的行更改为'href]:this.href.replace(新的RegExp(“watch?v=“,“i”),“v/”),
,这对我来说似乎更正确,会产生相同的结果
有什么建议吗
编辑:我调整了脚本,使其只包含与我的问题相关的部分。脚本标记应如下所示
<script type='text/javascript'>
$(document).ready(function(){
$("a.video").click(function() {
$.fancybox({
'padding' : 0,
'autoScale' : false,
'title' : this.title,
'overlayOpacity' : '.6',
'overlayColor' : '#333',
'transitionIn' : 'none',
'transitionOut' : 'none',
'centerOnScroll' : false,
'showCloseButton' : true,
'hideOnOverlayClick': false,
'href' : this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
'type' : 'swf',
'swf' : {
'wmode': 'transparent',
'allowfullscreen': 'true'
}
});
return false;
});
});
</script>
$(文档).ready(函数(){
$(“a.video”)。单击(函数(){
$.fancybox({
“填充”:0,
“自动缩放”:false,
“title”:this.title,
“产能过剩”:“.6”,
“套色”:“333”,
“transitionIn”:“无”,
“transitionOut”:“无”,
“centerOnScroll”:错误,
“showCloseButton”:true,
“HideOnOvercyclick”:false,
'href':this.href.replace(新的RegExp(“watch\\?v=,“i”),'v/'),
“类型”:“swf”,
“swf”:{
'wmode':'transparent',
“allowfullscreen”:“true”
}
});
返回false;
});
});
url应如下所示-在其末尾添加&fs=1
<a class="video iframe" href="http://www.youtube.com/watch?v=Psk2Pq03rv0&fs=1">Arbitrary text</a>
在此上下文中,this.href指的是文档,而不是锚定
$("a.video").fancybox({
'padding' : 0,
'autoScale' : false,
'title' : this.title,
'overlayOpacity' : '.6',
'overlayColor' : '#333',
'transitionIn' : 'none',
'transitionOut' : 'none',
'centerOnScroll' : false,
'showCloseButton' : true,
'hideOnOverlayClick': false,
'href' : this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
'type' : 'swf',
'swf' : {
'wmode': 'transparent',
'allowfullscreen': 'true'
}
});
同样写为:
var options = {
'padding' : 0,
'autoScale' : false,
'title' : this.title,
'overlayOpacity' : '.6',
'overlayColor' : '#333',
'transitionIn' : 'none',
'transitionOut' : 'none',
'centerOnScroll' : false,
'showCloseButton' : true,
'hideOnOverlayClick': false,
'href' : this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
'type' : 'swf',
'swf' : {
'wmode': 'transparent',
'allowfullscreen': 'true'
}
};
$("a.video").fancybox(options);
锚点在该上下文中不可用
一个选项是将代码包装在每个块中
$("a.video").each(function(function(index, value)) {
var obj = $(value);
obj.fancybox({
'padding' : 0,
'autoScale' : false,
'title' : this.title,
'overlayOpacity' : '.6',
'overlayColor' : '#333',
'transitionIn' : 'none',
'transitionOut' : 'none',
'centerOnScroll' : false,
'showCloseButton' : true,
'hideOnOverlayClick': false,
'href' : value.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
'type' : 'swf',
'swf' : {
'wmode': 'transparent',
'allowfullscreen': 'true'
}
});
});
我真希望我知道如何使我的代码像你的代码一样漂亮和结构化,但是哦,好吧。我很抱歉没有包括
$(文档)。早些时候准备好了
——我想会有很多假设。&fs=1
对我没有任何作用,但是返回false代码>,在我将代码从另一个文件移到另一个文件后,我忽略了替换它,这确实有点帮助。Fancybox现在被触发,但是框是白色的,并且是空的;视频从未加载。再来一次?我已经适当地更新了代码。$(“a.video”)。单击(function(){$.fancybox({您的代码仍然缺少这一部分,这一点很重要,是它让fancybox选项中的“this”起作用的原因。谢谢wowo,但是链接仍然会转到YouTube而不会触发fancybox。下面是我的代码目前的样子,排除了所有不必要的样式属性:`$(document).ready(function(){$(“a.video”)。单击(function(){$.fancybox({'href':this.href.replace(new RegExp(“watch\\?v=“,“i”),'v/”),'type':'swf','swf':{'wmode':'transparent','allowfullscreen':'true'}};});return false;};`将return false向上移动1行,它应该在函数内部。像这样单击(function()){init fancy box…return false;}我是个白痴。在复制/粘贴您的代码时,我更改了类名,并且没有[再次]更新它。这非常有效。非常感谢您的时间!这很有意义,但您的第一行中有语法错误,您能发现吗?“缺少形式参数”是错误消息-我对Javascript语法不太熟悉,遗憾的是。啊,索引或值可能是保留字,您可以将它们更改为其他内容。
var options = {
'padding' : 0,
'autoScale' : false,
'title' : this.title,
'overlayOpacity' : '.6',
'overlayColor' : '#333',
'transitionIn' : 'none',
'transitionOut' : 'none',
'centerOnScroll' : false,
'showCloseButton' : true,
'hideOnOverlayClick': false,
'href' : this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
'type' : 'swf',
'swf' : {
'wmode': 'transparent',
'allowfullscreen': 'true'
}
};
$("a.video").fancybox(options);
$("a.video").each(function(function(index, value)) {
var obj = $(value);
obj.fancybox({
'padding' : 0,
'autoScale' : false,
'title' : this.title,
'overlayOpacity' : '.6',
'overlayColor' : '#333',
'transitionIn' : 'none',
'transitionOut' : 'none',
'centerOnScroll' : false,
'showCloseButton' : true,
'hideOnOverlayClick': false,
'href' : value.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
'type' : 'swf',
'swf' : {
'wmode': 'transparent',
'allowfullscreen': 'true'
}
});
});