Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   некорректно работает $(this).removeClass('check') (https://javascript.ru/forum/dom-window/60627-nekorrektno-rabotaet-%24-removeclass-%27check%27.html)

boobbbbbbbbbb 11.01.2016 23:07

некорректно работает $(this).removeClass('check')
 
Вложений: 1
<form method="get" action="/" id="form_filter">
<ul class="s5 class-block">
<?php
brand = $connection->query("SELECT * FROM table_brand )");
if($brand->num_rows >0){
$row = $brand->fetch_array();
do{
echo '<li><label for="checkbrend'.$row["ID_ALL_BRAND"].'"><input type="checkbox" name="brand[]" value="'.$row["ID_ALL_BRAND"].'" id="checkbrend'.$row["ID_ALL_BRAND"].'"/><span>'.$row["BRAND"].'()</span></label></li>';
}
while($row = $brand->fetch_array());
}
?>

<input type="submit" id="search_filter" value="Показать" />
</ul>


++++++++++++++

$(".class-block >li >label").click(function() {
if ($(".class-block >li >label >input").is(":checked")) {
$(this).addClass('check');

}
else {
$(this).removeClass('check');
}
});


помогите пожалуйста . некорректно удаляется класс (check). класс (check) присваивает картинку


#sidebar ul li >label{
background-image: url(../image/check.png);
background-repeat: no-repeat;
background-position: left center;
}


#sidebar ul li >label.check{
background-image: url(../image/check-active.png);
}

рони 11.01.2016 23:12

boobbbbbbbbbb,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

boobbbbbbbbbb 11.01.2016 23:24

спасибо :) что подсказываете. код у меня по разных файлах
my_php.php
my_js.js
my_css.css

++++++++++++++++++++++++++++++++

$(".class-block >li >label").toggle(
function() {
$(this).addClass('check');
$('#view_status').show();
setTimeout("$('#view_status').hide()", 4000);
},
function() {
$(this).removeClass('check');
});
но toggle не работает с checkbox

рони 11.01.2016 23:32

Цитата:

Сообщение от boobbbbbbbbbb
toggle

где вы только находите этот метод?!!
желательно html начиная с #sidebar без всяких php, li достаточно пары

рони 11.01.2016 23:48

Цитата:

Сообщение от boobbbbbbbbbb
<input type="submit" id="search_filter" value="Показать" />
</ul>

это как, у вас в списке инпут оказался ?
Цитата:

Сообщение от boobbbbbbbbbb
if ($(".class-block >li >label >input").

искать надо не первый попавшийся инпут, а в той лейбе на которую нажали
if ($("input", this).is(":checked"))

<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
 #sidebar ul li >label.check{
  background-color: #00FF00;
 }
#sidebar ul li >label{
  background-color: #FF8C00;
   padding: 5px;
   margin: 8px;
 }
#sidebar ul li{
   list-style-type: none;
   margin: 8px;
 }
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
 $(function(){
 $(".class-block >li >label").click(function() {
 $(this).toggleClass('check', $("input", this).is(":checked"));
 });


});


  </script>
</head>

<body>
<form id="sidebar">
    <ul class="class-block">
        <li ><label for="test"><input type="checkbox" id="test" ><span>test</span></label></li>
        <li ><label for="test2"><input type="checkbox" id="test2" ><span>test2</span></label></li>
    </ul>
    <input type="submit" id="search_filter" value="Показать" />
</form>


</body>

</html>

boobbbbbbbbbb 12.01.2016 00:48

большое спасибо. :victory: :yes:

рони 12.01.2016 02:25

boobbbbbbbbbb,
на всякий случай
toggle с кликом не работает с версии 1.9


Часовой пояс GMT +3, время: 19:41.