На моей странице отображаются элементы, содержащие сообщения.Div имеет следующий формат (где вы видите # является postID в моей базе данных):
<div id="post_#>
<div id="post_#_inside">
<div id="like_#">
</div>
<div id="dislike_#">
</div>
</div>
</div>
Каждый post_ # также содержит класс like или dislike.
У меня также есть двафлажки.Их цель - переключать все понравившиеся сообщения или все не понравившиеся сообщения.
<form name="myform" action="" method="post">
<fieldset>
<p class="left"><input id="show_likes" name="show_likes" type="checkbox" value="1" class="choice"/>
<label for="b1">Hide Liked</label></p>
<p class="right"><input id="show_dislikes" name="show_dislikes" type="checkbox" value="1" class="choice"/>
<label for="b1">Hide Disliked</label></p>
</fieldset>
</form>
Моя проблема в том, что у меня jQuery скрывает ВСЕ сообщения, независимо от их класса.Очевидно, что я хочу, чтобы только флажок «Скрыть понравившиеся» скрывал сообщения с class = «like», а флажок «Скрыть не понравившиеся» скрывал только сообщения с class = «dislike».Кроме того, когда я снова ставлю флажок, сообщение post возвращается, но содержимое внутри div остается скрытым (я получаю div с фонами, но без текста).
Мой jQuery:
//When Hide Liked checkbox clicked, toggle all liked contests.
$("input[name*='show_likes']").click(function() {
if ($('[id^=post_]').is('.like')) {
$('[id^=post_]').toggle();
}
});
//When Hide Disliked checkbox clicked, toggle all disliked contests.
$("input[name*='show_dislikes']").click(function() {
if ($('[id^=post_]').is('.dislike')) {
$('[id^=post_]').toggle();
}
Что я делаю не так?});