2017-07-19 8 views
0

私がクリックしたときに、それがに追加された要素が非表示になりますが、閲覧可能なままであることをいくつかのテキストを追加しようとし、それが再びクリックされたときに、要素を作るのですが再表示されます。jqueryのクリッカブル機能を追加

jQuery(document).ready(function($){ 
    $('<span class="click-me">Click Here For Filter Options</span>').insertBefore('.searchandfilter'); 

    $(".click-me").click(function() { 
     $(".searchandfilter").css("height", "0px"); 
    }); 
} 
}); 

私はトグル機能を使用するべきであることを知っていますが、私はそれを実装する方法について少し失われています。

ありがとうございます!

+0

要素が非表示になっている場合、すべての子どもたちが非表示になります。ここ

はあなたのコードの修正版です。 – Taplar

+0

.insertBefore()を使用するとどうなりますか?または、おそらく子にposition absoluteを使用し、単に親の高さを0に減らしますか? –

+1

要素が隠されている要素の外側に存在する場合は、確かに。しかし、表示の要素の子である限り、あなたは何をしていても、それは隠されます。 – Taplar

答えて

0

余分}は、コードを壊し、toggle()作られたショーを使用しての原因だったと取り組んで非表示にします。これは別の方法である

jQuery(document).ready(function($){ 
    $('<span class="click-me">Click Here For Filter Options</span>').insertBefore('.searchandfilter'); 

    $(".click-me").click(function() { 
     // Use toggle instead 
     //$(".searchandfilter").css("height", "0px"); 
     $(".searchandfilter").toggle(); 
    }); 
//} /* extra, cause of breaking */ 
}); 

jQuery(document).ready(function($){ 
    var $clickMe = $('<span/>',{ 
     class:'click-me', 
     text:'Click Here For Filter Options' 
    }); 

    $clickMe.insertBefore('.searchandfilter'); 

    $(".click-me").click(function() { 
     $(".searchandfilter").toggle(); 
    }); 

}); 

JsFiddle

+0

この作品は完璧です! –

0

あなたの例では、迷い}があります。これは恐らく動作しない理由です。

私はちょっと整理した実例があります。うまくここ

codepen

jQueryのtoggle作品。

$(function() { 
 
    $('<span>Show/Hide Filter Options</span>') 
 
     .insertBefore('.searchandfilter') 
 
     .click(function() { 
 
      $(".searchandfilter").toggle(); 
 
     }); 
 
});
<div class="searchandfilter">Some content</div>

関連する問題