Jquery / CGI: флажок добавить / удалить div - PullRequest
0 голосов
/ 27 апреля 2011

Я пытаюсь добавлять и удалять div, используя флажки.
Некоторая помощь для этого скрипта была бы заметна:

$(document).ready(function() {

            $('input:checkbox').change(function(){
                 if( $(this).is(':checked') ){
                        var nom = $(this).attr("value");
                        $('body').append($("<div id="+nom+">Switch "+nom+"</div>"));
                }else{
                        $("#" + nom).remove();
                }
        });

В else, remove () не работает, тампроблема с селектором, не знаю, как поступить с переменной, я искал в Интернете и ничего не нашел.
Моя вторая проблема - добавление, оно работает, я могу добавить новый div,но я использую Perl / CGI, я хотел бы добавить div, сделанный следующим образом: my $switch1 = SwitchGUI->new("switch-rdc-7", 24, 2); (который представляет html-представление переключателя).

Если кто-то может мне помочь,
Спасибо.

Ответы [ 3 ]

1 голос
/ 27 апреля 2011

Поскольку вы присваиваете значение только переменной nom внутри "if-clause", эта переменная всегда будет неопределенной внутри "else-clause".Это означает, что вы выбираете «#undefined», который не существует, поэтому ничего не удаляется.

Я думаю, что это будет работать, если вы поместите инициализацию (а не только определение, как это происходит автоматически) вашегопеременная вне конструкции if / else, например:

$(function() {
    $('input:checkbox').change(function(){
        var nom = $(this).attr("value");
        if ( $(this).is(':checked') ) {
            $('body').append($("<div id="+nom+">Switch "+nom+"</div>"));
        } 
        else {
            $("#" + nom).remove();
        }
    });

Что касается вашей второй проблемы:

Я не знаком с тем, что вы говорите на стороне сервера о «переключателе».,Но так как ваш javascript работает на клиенте, вам просто нужно заново создать то, что создает SwitchGUI.Например, сначала создайте свой графический интерфейс, используя эту вещь SwitchGUI, затем посмотрите на сгенерированный HTML-код и точно воссоздайте его в своем javascript, где вы сейчас создаете свой div.

0 голосов
/ 27 апреля 2011

Вот, пожалуйста. Это должно работать:

$(function() {

    $('input:checkbox').change(function(){
        var nom = $(this).attr("value");

    if( $(this).is(':checked') )
            $('body').append($("<div id="+nom+">Switch "+nom+"</div>"));
    else
            $("#" + nom).remove();
    });
});
0 голосов
/ 27 апреля 2011

На первый взгляд похоже, что var nom должен быть объявлен вне блока if.

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