JQuery hide () и выбор флажка - PullRequest
0 голосов
/ 02 марта 2010

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

$(".cal_checkbox").each(function(){
$(this).hide();
var id = $(this).attr('id');
if($(this).attr('checked'))
    {
    $('#cal_checkbox_'+id).css({"font-weight":"bold"}).css({'color':'#7C001D'}) // make bold and red if selected
    .click(function(){
        $(this).attr('checked', false)
    })
    }
else
    {
    $('#cal_checkbox_'+id).click(function(){
        $(this).attr('checked', true)
    })
    }});

Это работает нормально, если я закомментирую строку hide (), т.е. если флажки видны, вы все равно можете нажимать на ярлыки, и все меняется и работает. Однако, если я оставлю скрытую () и флажки станут невидимыми, все это перестает работать. Я думал, что hide () просто визуализирует выбранный элемент так же, как «display: none;». Это полностью удаляет элемент?

1 Ответ

1 голос
/ 03 марта 2010

В ваших функциях щелчка контекст 'this' будет назначен элементу '' #cal_checkbox _ '+ id "(который, как я предполагаю, должен быть идентификатором метки рядом с флажком?

hide () просто обновляет свойство display css до none. Не удаляет элемент из DOM.

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

Можете ли вы опубликовать свой HTML, а также javascript?

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