Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
JQuery, проверка на true
Новая тема
Ответить
цитата
31/07/10 в 11:20
FXIX
банальный вопрос но не могу догнать.
Короче есть филдсеты, в каждом контейнере есть кнопка "удалить источник". Так вот надо сделать так чтобы единственный филдсет нельзя было удалить.
<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. условие не могу составить так чтобы оно работало
цитата
31/07/10 в 11:31
x123p
А если сделать банально и просто считать сколько у тебя этих филдсетов на странице в момент удаления?
цитата
31/07/10 в 11:44
FXIX
да куда-уж банальнее. вроде максимально банально
тыкаем на кнопку 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 "железные". остальные под ними удаляются\добавляются
цитата
31/07/10 в 11:53
freeek
тороплюсь, как вариант, хотя я думаю можно намного изящней
Код:
$(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;
}
});
});
цитата
31/07/10 в 12:32
FXIX
всем спасибо, остановился пока на таком варианте
Цитата:
$(document).ready(function(){
$("button.button2").click(function () {
if ($("fieldset").size()==1) {
alert('нельзя удалить');
return false;
}
else {
$(this).parent().remove();
alert('источник удален');
return false;
}
});
});
цитата
01/08/10 в 01:34
freeek
ну по сути, те же яйца, только в профиль
цитата
02/08/10 в 12:43
FXIX
яйца теже но кода меньше
цитата
02/08/10 в 15:31
freeek
не всегда меньше кода = хорошо
в моем варианте блок условий вызывает функцию от которой должен получить true/false, и этот блок абсолютно не волнует, что там происходит
а вот в самой функции, мы можем постоянно наращиваь и модернизировать код, в связи с потребностями
+
. у меня логика такая, что мы ищем филдсеты внутри body - задача может поменяться, и искать их придется в другом месте, а не по всему документу
. я смотрю что филдсетов должно быть больше 1, а не 1, мало ли, вдруг закрадется ошибка где то
хотя если там все просто, и тебя устравиает свой вариант, юзай на здоровье
, просто размышления
цитата
02/08/10 в 15:56
FXIX
freeek писал:
мы можем постоянно наращиваь и модернизировать код, в связи с потребностями
ну да. если не учитывать что код на 3 строчки и его задача пукнуть в нужном месте и умереть.
freeek писал:
+
. у меня логика такая, что мы ищем филдсеты внутри body - задача может поменяться, и искать их придется в другом месте, а не по всему документу
.
не поверишь, - if ($("div.any fieldset").size()==1)
цитата
03/08/10 в 09:40
freeek
ну пусть будет так
меня учили кодить по другому, так что тут на свое усмотрение, тем более если
Цитата:
его задача пукнуть в нужном месте и умереть
Новая тема
Ответить
Эта страница в полной версии