Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Если есть класс у элемента - удалить
 
 автор: OLi   (09.09.2012 в 16:26)   письмо автору
 
 

Удалить этот класс у элемента..
if ($('#block_city').hasClass('block_city')){ $('#block_city').removeClass('block_city'); }

Не выполнело нужное..

  Ответить  
 
 автор: confirm   (09.09.2012 в 16:38)   письмо автору
 
   для: OLi   (09.09.2012 в 16:26)
 

Без if, просто:
$('#block_city:has(.block_city)').removeClass('block_city');

  Ответить  
 
 автор: OLi   (09.09.2012 в 16:41)   письмо автору
 
   для: confirm   (09.09.2012 в 16:38)
 

так же

  Ответить  
 
 автор: confirm   (09.09.2012 в 17:28)   письмо автору
 
   для: OLi   (09.09.2012 в 16:41)
 

Ой да, это ведь возвращает родителя имеющего внутри элементы по указанному селектору, а вам же именно у элемента убрать надо.
Значит либо получить элемент и проверить, либо сразу указать:
$('#block_city[class*=block_city]').removeClass('block_city');

  Ответить  
 
 автор: OLi   (09.09.2012 в 19:32)   письмо автору
 
   для: confirm   (09.09.2012 в 17:28)
 

Нет результата...не удаляет класс

  Ответить  
 
 автор: confirm   (09.09.2012 в 20:06)   письмо автору
 
   для: OLi   (09.09.2012 в 19:32)
 

Ну уж в этом случае не городите ерунды:
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<style>
.block_city {color: red;}
</style>
<script>
$(function(){
    //$('#block_city[class*=block_city]').removeClass('block_city');
    $('body').click(function(){
        $('#block_city[class*=block_city]').removeClass('block_city');
    })
});    
</script>
</head>
<body>
<div id="block_city" class="block_city">test</div>
</body>
</html>
И сразу удалит, если первую строку разремировать, или по щелчку...
Кстати, странно давать идентификаторам и классам имена одинаковые. Как собственно и выбор ваш, конечно, если в процессе работы вашему элементу не добавляется этот класс.

  Ответить  
 
 автор: OLi   (09.09.2012 в 20:21)   письмо автору
 
   для: confirm   (09.09.2012 в 20:06)
 

Может из-за того, что class был добавлен js предыдущим событием по клику?

  Ответить  
 
 автор: confirm   (09.09.2012 в 20:29)   письмо автору
 
   для: OLi   (09.09.2012 в 20:21)
 

Какая разница установлен ли он был сразу, или потом добавили, если есть такой класс, значит удалит. И вообще, если вам по щелчку надо добавлять/удалять его, то есть метод .toggleClass().

  Ответить  
 
 автор: OLi   (09.09.2012 в 20:31)   письмо автору
 
   для: confirm   (09.09.2012 в 20:29)
 

$(".more_city").click(function() {
    alert('ok');// выводит
    $('#block_city[class*=block_city]').removeClass('block_city'); 
    $('#block_city').addClass('block_city');
    $('.more_city_block').slideToggle();
return false;
});



<div id="block_city" class="block_city"><a href="#" class="more_city selected_city">Еще &#9660;</a></div>

  Ответить  
 
 автор: confirm   (09.09.2012 в 20:40)   письмо автору
 
   для: OLi   (09.09.2012 в 20:31)
 

И что вы тут написали? Зачем удалять класс, если сразу его добавлять вновь?

  Ответить  
 
 автор: OLi   (09.09.2012 в 20:41)   письмо автору
 
   для: confirm   (09.09.2012 в 20:40)
 

для этого изначально и задавал вопрос, что если класс есть - его удалить

  Ответить  
 
 автор: confirm   (09.09.2012 в 20:52)   письмо автору
 
   для: OLi   (09.09.2012 в 20:41)
 

Это вот так вы пытаетесь удалить?

$('#block_city[class*=block_city]').removeClass('block_city');
$('#block_city').addClass('block_city');

Вы смысл этой писанины можете пояснить?

  Ответить  
 
 автор: OLi   (09.09.2012 в 21:03)   письмо автору
 
   для: confirm   (09.09.2012 в 20:52)
 

Здесь ясно, я изначально вопрос задавал:
Если элемент имеет класс при клике, то его удалить, а вы написали пример как просто его удалить.

  Ответить  
 
 автор: confirm   (09.09.2012 в 21:10)   письмо автору
 
   для: OLi   (09.09.2012 в 21:03)
 

Здрасьте, значит я виновен?
Если у запрашиваемого мною элемента есть класс указанный, то он его удалит, а нет, значит и удаления не будет! Это как-то противоречит вашему вопросу?

  Ответить  
 
 автор: OLi   (09.09.2012 в 21:24)   письмо автору
 
   для: confirm   (09.09.2012 в 21:10)
 

а если нет, то добавит..

  Ответить  
 
 автор: confirm   (09.09.2012 в 22:28)   письмо автору
 
   для: OLi   (09.09.2012 в 21:24)
 

Вы как с делением по модулю до сих пор так и не поняли, так как лишнего написали, так и тут толком не можете объяснить чего надо.
Исходите из того, что у вас страница загружается, а значит некий элемент примет или не примет некое значение, но в любом случае, это будет его значение по умолчанию. Так или нет?
Наверное так, иначе и не может быть.
Далее. А что вам надо далее - при каждом, к примеру щелчке по этому элементу, изменять это состояние, например, добавлять/удалять у него класс? Тогда вам нужен обычный переключатель, триггер, и для этого есть метод .toggle().
А что конкретно вам надо, вы можете словами объяснить и вразумительно, а не "есть/нет", а чтобы понятно было, что значит есть/нет и для чего. Так как на ваш вопрос я дал решение, но для меня вопрос - на черта оно нужно, что вы там пытаетесь делать...? Потом кто-то виноват...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования