Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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
Javascript 高级jQuery弹出窗口_Javascript_Jquery - Fatal编程技术网

Javascript 高级jQuery弹出窗口

Javascript 高级jQuery弹出窗口,javascript,jquery,Javascript,Jquery,几个问题: 1) 我正在努力使这个脚本运行得更有效 2) 当用户单击任一弹出按钮时,将打开一个窗口并隐藏该元素。(目前我正在使用.detach()删除嵌入式视频播放器,因为在Firefox中.toggle()只隐藏播放器,但保持音频播放。有更好的方法吗 3) 理论上,通过再次单击按钮或手动关闭窗口,它应该取消隐藏或.toggle()元素,但由于分离(),视频播放器不会 4) 如果用户弹出窗口,手动将其关闭,然后再次弹出以仅关闭一次,则元素不会返回.toggle() 请在此处查看它的实际操作 如果

几个问题:

1) 我正在努力使这个脚本运行得更有效

2) 当用户单击任一弹出按钮时,将打开一个窗口并隐藏该元素。(目前我正在使用.detach()删除嵌入式视频播放器,因为在Firefox中.toggle()只隐藏播放器,但保持音频播放。有更好的方法吗

3) 理论上,通过再次单击按钮或手动关闭窗口,它应该取消隐藏或.toggle()元素,但由于分离(),视频播放器不会

4) 如果用户弹出窗口,手动将其关闭,然后再次弹出以仅关闭一次,则元素不会返回.toggle()

请在此处查看它的实际操作


如果你为你的代码创建了一个jQuery插件,这样你就可以重复使用它,避免枯燥。以下是几个选项:

插件1:

插件2:


还要注意的是,
closed
属性不是任何W3C规范的一部分,但是它可能在不同的浏览器中都受支持。

如果您为代码创建了一个jQuery插件,这样您就可以重复使用它,并避免干涸。以下是几个选项:

插件1:

插件2:


还请注意,
closed
属性不是任何W3C规范的一部分,但是它可能在不同浏览器中都受支持。

您还可以编写一个可以重用的JS函数。根据说明,大多数主要浏览器都支持window.closed属性,您可以在触发事件之前检查该属性

而不是

if(videoWin && !videoWin.closed)
你可以用

if (typeof videoWin!='undefined'){ /* it has been created */}
elseif(typeof videoWin='undefined') { /*it's okay to open the new window*/}
如果要将此用作检查,请确保在触发窗口打开事件之前未创建变量。由于在函数声明上方的几行创建var,它将始终按照定义返回

您需要在函数中指定一个目标对象,使其正确地抛出多个窗口。。。这意味着您不能为多个窗口声明一个var。也许上课会更好


有件事我之前觉得很奇怪,但在FB过早发布我的回复之前忘了提及,那就是你在rel属性中添加了你的href,并将href指定为js:void(0),这也是非标准的。rel属性用于指定链接和页面之间的关系。。。(例如rel=nofollow)。这也可能是为什么它在某些时候不启动和不启动,以及浏览器响应之间的差异。

您还可以编写一个可以重用的JS函数。根据说明,大多数主要浏览器都支持window.closed属性,您可以在触发事件之前检查该属性

而不是

if(videoWin && !videoWin.closed)
你可以用

if (typeof videoWin!='undefined'){ /* it has been created */}
elseif(typeof videoWin='undefined') { /*it's okay to open the new window*/}
如果要将此用作检查,请确保在触发窗口打开事件之前未创建变量。由于在函数声明上方的几行创建var,它将始终按照定义返回

您需要在函数中指定一个目标对象,使其正确地抛出多个窗口。。。这意味着您不能为多个窗口声明一个var。也许上课会更好

有件事我之前觉得很奇怪,但在FB过早发布我的回复之前忘了提及,那就是你在rel属性中添加了你的href,并将href指定为js:void(0),这也是非标准的。rel属性用于指定链接和页面之间的关系。。。(例如rel=nofollow)。这也可能是为什么它在某些时候不点火和不点火,以及浏览器响应之间的差异