显示/隐藏div的问题 - 当单击外部div以隐藏它时,您需要单击两次以再次显示它

时间:2014-11-05 10:39:48

标签: javascript jquery

我已经看到了几十个与此类似的问题,我已经彻底搜索了数据库,但我找不到与我的问题相同的问题。

显示/隐藏div(切换)搜索按钮工作正常,“在外部点击时隐藏div”

问题是,如果再次单击“显示”按钮,它没有反应,您必须再次单击搜索按钮再次打开div。

仅当您通过单击div外部关闭div,然后再单击搜索按钮尝试再次打开div时,才会发生这种情况。

我有一种感觉,问题是由于不止一次调用相同的功能..但不确定,任何帮助将不胜感激! : - )

我使用的jQuery代码:

//Open close search div 


   $("#search-form-test").toggle( 

   function(){

   $(".alias-search-form").show(800);
   },

   function(){
   $(".alias-search-form").hide(800);

   }
   );


//Close search area when clicking outside of it

   $(".block-type-content").click( 

   function(){

   $(".alias-search-form").hide(800);

   }

   );

1 个答案:

答案 0 :(得分:1)

为了保持一致的行为,请注册点击事件,而不是注册切换事件,而是使用toggle()代替show / hide方法来切换可见性。

// HIDE SHOW SEARCH 
$("#search-form-test").click(function(e) {
    e.preventDefault(); //To prevent default anchor tag behaviour
    e.stopPropagation(); //To prevent parent container click event from firing

    $(".alias-search-form").toggle(800);
});

$(".block-type-content").click(function() {
    $(".alias-search-form").hide(800);
});