【发布时间】:2013-02-02 17:20:27
【问题描述】:
我想通过单击页面上的某个位置来隐藏 div,但前提是该 div 是通过单击预览首先显示的。
我有这个:
$(function() {
$("#videopreview").click(function() {
$("#videolarge").css({ display: 'block' });
$("#videopreview").css({ display: 'none' });
$("#videolarge").click(function(){ return false; });
$(document).one("click", function() {
$("#videolarge").css({ display: 'none' });
$("#videopreview").css({ display: 'block' });
});
});
});
它同时运行这两个函数,所以什么也没发生 :)
更新:
$(function() {
$("#videopreview").click(function() {
$("#videolarge").css({ display: 'block' });
$("#videopreview").css({ display: 'none' });
});
$("#videolarge").click(function(){ return false; });
$("#videopreview").click(function(){ return false; });
$(document).click(function() {
$("#videolarge").css({ display: 'none' });
$("#videopreview").css({ display: 'block' });
});
});
我可以使用 remove() 但是一旦隐藏我就不能再次运行它(这是有道理的)。我该如何处理?
【问题讨论】:
-
代替匿名函数,编写两个单独的函数并命名。然后你可以更好地看到它们是如何运行的,哪个调用哪个。如果在单击预览之前添加一个为零的标志(两个函数之外的变量),然后才允许其他步骤发生,那么您可能正在解决自己的问题。
-
你真的需要解释这个问题,因为它不是很清楚。也许给出标记并解释您想要实现的目标。
-
我相信需要的是例如单击时将显示完整视频播放器的缩略图预览。显示后,单击页面上的任意位置将重新隐藏视频播放器并重新显示预览缩略图。
标签: jquery