Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Fancybox iframe说我的YouTube href未定义_Jquery_Iframe_Youtube_Fancybox - Fatal编程技术网

Jquery Fancybox iframe说我的YouTube href未定义

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&#38;fs=1">Arbitrary text</a> 因此,单击此链接会将用户带到YouTube,而不会触发Fancybox。 将有问题的行更改为'href]:this.href.replace(新的RegExp(“watch?v=“,“i”),“v/”),,这对我来说似乎更正确,会产生相同的结

这是我的HTML:

<a class="video iframe" href="http://www.youtube.com/watch?v=Psk2Pq03rv0&#38;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'
        }
    });
});