2016-04-27 5 views
-1

こんにちは私のページではトグルエフェクトを実行していますが、ページの他の部分でボタンを閉じるとエラーになります。ボタンがhtmlの一部に含まれている場合、例えば他のdivでボタンが機能しない場合は、何が起こっているのか把握できますか?私のjqueryがきれいだと言うこともできますか?または改善する必要がありますか?jqueryトグルクラスが他のdivにあるときには動作しません

HTML:

<a href="#menu-toggle" class="btn btn-sidebar-close" id="close"> 
    <i class="fa fa-times" aria-hidden="true"></i> 
</a> 

<a href="#menu-toggle" id="menu-toggle"data-toggle="tooltip> 
    <i class="fa fa-search fa-2x" aria-hidden="true"></i> 
</a> 

JS:

$('#close').click(function(e) { 
    e.preventDefault(); 
    $('#wrapper').toggleClass('toggled'); 
}); 

$('#menu-toggle').click(function(e) { 
    e.preventDefault(); 
    $('#wrapper').toggleClass('toggled'); 
}); 
+0

より良いあなたがフィドルを行い、状況を複製する場合は、理由上記のコードは実際の問題であることを示すには十分ではなく、 – mmativ

答えて

1

改善は次のようになります。

$('#close').click(function(e) { 
     e.preventDefault(); 
     $('#wrapper').toggleClass('toggled'); 
}); 

$('#menu-toggle').click(function(e) { 
     e.preventDefault(); 
     $('#wrapper').toggleClass('toggled'); 
}); 

を単一の関数で、彼らは両方とも同じ機能を含むているよう:

$('#close, #menu-toggle').click(function(e) { 
     e.preventDefault(); 
     $('#wrapper').toggleClass('toggled'); 
}); 
+0

は助けてくれてありがとう、いつも良いコードを学んでくれてありがとう。 – Raduken

+0

@Raduken心配する人は、一般化は非常に重要で早期に把握するのが良いです。 –

+0

私はここで何人かを理解していないだけで、誰かが知識を持っていないので、誰かのコードを批判するようになりました。私はそのスレッドでは言いませんが、とにかく感謝します。 – Raduken

1

あなたがここで "ツールチップ" の後に引用符を閉じるのを忘れ:

<a href="#menu-toggle" id="menu-toggle"data-toggle="tooltip"> 
    <i class="fa fa-search fa-2x" aria-hidden="true"></i> 
</a> 

そうでない場合は、あなたのコードは動作しています:

See this Fiddle

関連する問題