Более эффективное скрытие / отображение с помощью jQuery? - PullRequest
0 голосов
/ 26 июля 2011

Есть ли более эффективный способ написания следующего скрипта?Все, что он делает, это обновляет счетчик элемента, а затем отображает текст единственного или множественного числа для этого счетчика в зависимости от того, сколько он находит.

Код просто кажется излишним, чтобы сказать «покажи это и скрой это,если не верно обратное, то спрячьте это и покажите это ".Разве не должен быть способ передать логическое значение во что-то, что должно показать или скрыть на основании этого?

var includedCount = $("#services").find("tbody tr td:nth-child(1) :checkbox:checked").length;
var requiredCount = $("#services").find("tbody tr td:nth-child(2) :checkbox:checked").length;

$("#js-included-num").html(includedCount);
if(includedCount === 1){
    $("#js-included-plural").hide();
    $("#js-included-singular").show();
}else{
    $("#js-included-plural").show();
    $("#js-included-singular").hide();
}

$("#js-required-num").html(requiredCount);
if(requiredCount === 1){
    $("#js-required-plural").hide();
    $("#js-required-singular").show();
}else{
    $("#js-required-plural").show();
    $("#js-required-singular").hide();
}

Ответы [ 2 ]

1 голос
/ 26 июля 2011

Поместите это в функцию, что-то вроде:

function togglePlural(baseSelectorName,count) {

    var p = $(baseSelectorName+'-plural'), s = $(baseSelectorName+'-singular');
    (count === 1 ? s : p).show();
    (count === 1 ? p : s).hide();
    // or use toggle()
}
0 голосов
/ 26 июля 2011

Вы можете проверить метод переключения

http://api.jquery.com/toggle/

Если элемент виден, он будет скрывать его, в противном случае он будет отображаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...