Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Отменить действие или событие. (https://javascript.ru/forum/events/64294-otmenit-dejjstvie-ili-sobytie.html)

ureech 01.08.2016 17:15

Отменить действие или событие.
 
Всем привет.Есть группа чекбоксов и отдельный чекбокс при клике на который становятся активными все чекбоксы в группе.А так же две скрытые ссылки, которые появляются в зависимости от того на какие чекбоксы кликали.
<a onclick="allDel()" class="ajax ajax_all_del" href="javascript:;">Удалить всё</a>
<a  class="ajax ajax_del" href="javascript:;">Удалить</a>

<input onclick="check(this);" type="checkbox" name="self_del_all"  value="0">
 
<input  type="checkbox" name="self_del[]" class="self_del[]" id="1" value="0">
<input  type="checkbox" name="self_del[]" class="self_del[]" id="2" value="0">
<input  type="checkbox" name="self_del[]" class="self_del[]" id="3" value="0">

var b = document.getElementsByName('self_del_all');
var is_user;
var a = document.getElementsByName('self_del[]');
var inp = $("input[name='self_del[]']");

Для отдельного чекбокса
function check(self){
var checkValue=self.checked;
for(i=0;i<a.length;i++){if(a[i].checked=checkValue){
$('.ajax_all_del').show()
}
else{
$('.ajax_all_del').hide()}}}

Для группы.
var handler = function(){
if(!$(b).prop("checked")){
if($(this).prop("checked")){var id = $(this).attr('id')}
$('.ajax_del').toggle(inp.is(":checked"));
$('.ajax_del').on('click',function(){del(id)});
}
};
$(inp).bind('click',handler);


Всё работает, но есть такой нюанс. Если выбрать чекбокс в группе и потом отметить отдельным чекбоксом все, не убрав галочку, то остаются видимыми обе ссылки. Как убрать ссылку "Удалить", если появляется "Удалить всё".Пробовал прописать
$(b).on('click',function(){
$(inp).unbind('click',handler);
$('.ajax_all').css('display','none');
});

Не прокатило.Подскажите,плиз.

laimas 01.08.2016 19:47

class="self_del[]" - это круто )

name="self_del[]" value="0"
.....
name="self_del[]" value="0"

почему?

name="self_del_all" - зачем?

И почему не LABEL "Удалить всё" вместо двух ссылок?


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