Добрых Дел Мастер
С нами с 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. условие не могу составить так чтобы оно работало
|
|
|
|
С нами с 19.05.08
Сообщения: 1894
Рейтинг: 3625
|
Добавлено: 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 "железные". остальные под ними удаляются\добавляются
|
|
|
|
С нами с 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;
}
});
}); |
|
|
|
|
Добрых Дел Мастер
С нами с 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;
}
});
});
|
|
|
|
|
С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134
|
Добавлено: 01/08/10 в 01:34 |
ну по сути, те же яйца, только в профиль
|
|
|
|
Добрых Дел Мастер
С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227
|
Добавлено: 02/08/10 в 12:43 |
яйца теже но кода меньше
|
|
|
|
С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134
|
Добавлено: 02/08/10 в 15:31 |
не всегда меньше кода = хорошо
в моем варианте блок условий вызывает функцию от которой должен получить true/false, и этот блок абсолютно не волнует, что там происходит
а вот в самой функции, мы можем постоянно наращиваь и модернизировать код, в связи с потребностями
+
. у меня логика такая, что мы ищем филдсеты внутри body - задача может поменяться, и искать их придется в другом месте, а не по всему документу
. я смотрю что филдсетов должно быть больше 1, а не 1, мало ли, вдруг закрадется ошибка где то
хотя если там все просто, и тебя устравиает свой вариант, юзай на здоровье , просто размышления
|
|
|
|
Добрых Дел Мастер
С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227
|
Добавлено: 02/08/10 в 15:56 |
freeek писал: | мы можем постоянно наращиваь и модернизировать код, в связи с потребностями
|
ну да. если не учитывать что код на 3 строчки и его задача пукнуть в нужном месте и умереть.
freeek писал: |
+
. у меня логика такая, что мы ищем филдсеты внутри body - задача может поменяться, и искать их придется в другом месте, а не по всему документу
.
|
не поверишь, - if ($("div.any fieldset").size()==1)
|
|
|
|
С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134
|
Добавлено: 03/08/10 в 09:40 |
ну пусть будет так
меня учили кодить по другому, так что тут на свое усмотрение, тем более если Цитата: | его задача пукнуть в нужном месте и умереть |
|
|
|
|