2015-02-24 4 views
0

У меня есть отдельные функции jquery checkbox, чтобы скрыть/показать столбцы.Как вызвать функцию jquery из функции jquery

$("input:checkbox:not(:checked)").each(function() { 
    var column = "table ." + $(this).attr("name"); 
    $(column).hide(); 
}); 

$("input:checkbox").click(function() { 
    var column = "table ." + $(this).attr("name"); 
    $(column).toggle(); 
}); 

У меня также есть выбор/отмените все JQuery:

$('#select_all').click(function (event) { 
if (this.checked) { 
    // Iterate each checkbox 
    $(':checkbox').each(function() { 
     this.checked = true; 
     this.trigger("click");//this doesn't work 
    }); 
} 
else { 
    // Iterate each checkbox 
    $(":checkbox").each(function() { 
     this.checked = false; 
     this.trigger("click");//this doesn't work either 
    }); 
} 
}); 

Как я могу вызвать функцию щелчка внутри избранных все функции нажмите?

ответ

0

Вы можете создать отдельные функции

function hideColumn(obj){ 
    var column = "table ." + obj.attr("name"); 
    $(column).hide(); 
} 

function showColumn(obj){ 
    var column = "table ." + obj.attr("name"); 
    $(column).toggle(); 
} 

И ваш код будет:

$("input:checkbox:not(:checked)").each(function() { 
    hideColumn($(this)); 
}); 

$("input:checkbox").click(function() { 
    showColumn($(this)); 
}); 

К (ип) выбрать все:

$('#select_all').click(function (event) { 
if (this.checked) { 
    // Iterate each checkbox 
    $(':checkbox').each(function() { 
     this.checked = true; 
     hideColumn($(this)); 
    }); 
} 
else { 
    // Iterate each checkbox 
    $(":checkbox").each(function() { 
     this.checked = false; 
     showColumn($(this)); 
    }); 
} 
}); 
+0

Спасибо. Но мне нужно изменить «это» в js на «obj», так как это ключевое слово. –

+0

О, хорошо, отредактируйте ответ. –

0

this является Java-объект DOM. Вам нужен объект jQuery для триггера: $(this).trigger('click');.

Смежные вопросы