Реклама на сайте Advertise with us

JQuery, проверка на true

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

Добрых Дел Мастер

С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227

Ссылка на сообщениеДобавлено: 31/07/10 в 11:20       Ответить с цитатойцитата 

банальный вопрос но не могу догнать.
Короче есть филдсеты, в каждом контейнере есть кнопка "удалить источник". Так вот надо сделать так чтобы единственный филдсет нельзя было удалить.

<fieldset>
<p> этот не удаляется </p>
<button class="button2">Удалить источник</button>
</fieldset>
<fieldset>
<button class="button2">Удалить источник</button>
</fieldset>
<fieldset>
<button class="button2">Удалить источник</button>
</fieldset>


код http://pastebin.com/rAVTisgF
трабл в строке 4. условие не могу составить так чтобы оно работало

0
 



С нами с 19.05.08
Сообщения: 1894
Рейтинг: 3625


Передовик Master-X (16.06.2010) Передовик Master-X (01.07.2010) Передовик Master-X (16.07.2010) Передовик Master-X (16.05.2011) Передовик Master-X (01.07.2012) Ветеран трепа Master-X (16.07.2012)
Ссылка на сообщениеДобавлено: 31/07/10 в 11:31       Ответить с цитатойцитата 

А если сделать банально и просто считать сколько у тебя этих филдсетов на странице в момент удаления?

(!)Внимание Ero Advertising дополнительный Еврики от продажи рекламы. Особенно попандеров и мобилок.

4
 

Добрых Дел Мастер

С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227

Ссылка на сообщениеДобавлено: 31/07/10 в 11:44       Ответить с цитатойцитата 

да куда-уж банальнее. вроде максимально банально

тыкаем на кнопку button.button2
$("button.button2").click(function () {
если ее родитель - первый филдсет на странице
if (($(this).parent()) === $("fieldset:eq(0)")) {
ничего не делаем
alert('нельзя удалить');
return false;
}
else {
удаляем родитель-филдсет
$(this).parent().remove();
alert('источник удален');
return false;
}
});
});

Вообще филдсетов может быть много, смысл в том чтобы тормознуть на fieldset:eq(N). к примеру 5 филдсетов. 4 "железные". остальные под ними удаляются\добавляются

0
 



С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134

Ссылка на сообщениеДобавлено: 31/07/10 в 11:53       Ответить с цитатойцитата 

тороплюсь, как вариант, хотя я думаю можно намного изящней

Код:
$(document).ready(function(){
        function isLast(){
          return ( $("body").find("fieldset").length > 1) ? false : true;           
        }   
        $("button.button2").click(function () {           
            if (isLast()) {
                alert('нельзя удалить');
                return false;
            }
            else {             
                $(this).parent().remove();
                alert('источник удален');
                return false;
            }
        });
    });

4
 

Добрых Дел Мастер

С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227

Ссылка на сообщениеДобавлено: 31/07/10 в 12:32       Ответить с цитатойцитата 

всем спасибо, остановился пока на таком варианте

Цитата:

$(document).ready(function(){
$("button.button2").click(function () {
if ($("fieldset").size()==1) {
alert('нельзя удалить');
return false;
}
else {
$(this).parent().remove();
alert('источник удален');
return false;
}
});
});

0
 



С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134

Ссылка на сообщениеДобавлено: 01/08/10 в 01:34       Ответить с цитатойцитата 

ну по сути, те же яйца, только в профиль icon_mrgreen.gif

4
 

Добрых Дел Мастер

С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227

Ссылка на сообщениеДобавлено: 02/08/10 в 12:43       Ответить с цитатойцитата 

яйца теже но кода меньше icon_wink.gif

0
 



С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134

Ссылка на сообщениеДобавлено: 02/08/10 в 15:31       Ответить с цитатойцитата 



не всегда меньше кода = хорошо

в моем варианте блок условий вызывает функцию от которой должен получить true/false, и этот блок абсолютно не волнует, что там происходит

а вот в самой функции, мы можем постоянно наращиваь и модернизировать код, в связи с потребностями

+
. у меня логика такая, что мы ищем филдсеты внутри body - задача может поменяться, и искать их придется в другом месте, а не по всему документу
. я смотрю что филдсетов должно быть больше 1, а не 1, мало ли, вдруг закрадется ошибка где то

хотя если там все просто, и тебя устравиает свой вариант, юзай на здоровье smail54.gif, просто размышления

4
 

Добрых Дел Мастер

С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227

Ссылка на сообщениеДобавлено: 02/08/10 в 15:56       Ответить с цитатойцитата 

freeek писал:
мы можем постоянно наращиваь и модернизировать код, в связи с потребностями

ну да. если не учитывать что код на 3 строчки и его задача пукнуть в нужном месте и умереть.
freeek писал:

+
. у меня логика такая, что мы ищем филдсеты внутри body - задача может поменяться, и искать их придется в другом месте, а не по всему документу
.

не поверишь, - if ($("div.any fieldset").size()==1) smail101.gif

0
 



С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134

Ссылка на сообщениеДобавлено: 03/08/10 в 09:40       Ответить с цитатойцитата 

ну пусть будет так

меня учили кодить по другому, так что тут на свое усмотрение, тем более если
Цитата:
его задача пукнуть в нужном месте и умереть

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »