Jquery 在运行第一个函数后调用函数

Jquery 在运行第一个函数后调用函数,jquery,Jquery,我想通过单击页面上的某个位置来隐藏div,但前提是首先通过单击预览来显示div 我有这个: $(function() { $("#videopreview").click(function() { $("#videolarge").css({ display: 'block' }); $("#videopreview").css({ display: 'none' }); $("#videolarge").click(function(){ retu

我想通过单击页面上的某个位置来隐藏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(),但一旦隐藏,我就无法再次运行它(这是有意义的)。如何处理它?

您不应该在另一个事件函数中使用该事件。那是行不通的

请改用此代码:

$(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").on('click', function()
    {
        $("#videolarge").css({ display: 'block' });
        $("#videopreview").css({ display: 'none' });
    });

    $(document).on("click", function(e)
    {
        if ($("#videolarge").is(":visible") && e.target.id !== "videopreview")
        {
            $("#videolarge").css({ display: 'none' });
            $("#videopreview").css({ display: 'block' });
        }
    });
});

旁注:与其直接设置这两个元素的CSS属性,不如使用适当的CSS类来添加或删除它们,这样可能会更整洁、更快。

不要使用匿名函数,而是使用名称编写两个单独的函数。然后您可以更好地看到它们是如何运行的,哪些调用了哪些。如果您添加的标志(两个函数之外的变量)在单击预览之前为零,然后才允许执行其他步骤,则您可能正在解决自己的问题。您确实需要解释这个问题,因为它不是很清楚。可能会给出标记并解释您想要实现的目标。我相信需要的是一个缩略图预览,当单击时会显示完整的视频播放器。显示后,单击页面上的任意位置将重新隐藏视频播放器并重新显示预览缩略图。由于前面的回答,我找到了解决方案。现在出现了一个新问题。在我的部门,我运行一个视频。当我用“显示:无”隐藏时,视频仍在后台运行。我能用jquery解决这个问题吗?还是在Youtube API端?@user1708580看一看(我在伊朗,所以看不到网站:()或者你可以看一看,或者最好的方法是Google it!是的,你是对的,我正在使用Youtube视频。但是我会在几个视频平台上使用它。所以我想用Jquery找到一个通用的解决方案,而不是每个API。@user1708580我认为没有通用的方法,你应该为每个API都这样做!好的,谢谢!我终于找到了一个解决方案,就是使用.remove()而不仅仅是css