Назначьте фоновое изображение с помощью jquery

0

Я пытаюсь присвоить изображение ярлыку в зависимости от статуса флажка, но он не работает

Javascript

        var myLabel = $('[id$=lbl]');
        var myCheckBox = $('[id$=chk]');
        if (myCheckBox.prop('checked'))
        {
            //myLabel.css('background-image', myLabel.data("image1"));
            myLabel.css({backgroundImage : myLabel.data("image1")});
            alert(myLabel.data("image1"));
        }
        else
        {
            myLabel.css({backgroundImage : myLabel.data("image2")});
            alert(myLabel.data("image2"))
        }
        alert(myLabel.css('background-image'));

Состояние флажка работает хорошо (true или false). Предупреждения с myLabel.data("image1") и myLabel.data("image2") возвращают URL-адрес изображений [url (../images/active.png) ) no-repeat; и url (../images/inactive.png) no-repeat;]

независимо от того, как вы назначаете значение

            myLabel.css('background-image', myLabel.data("image1"));

или

            myLabel.css({backgroundImage : myLabel.data("image1")});

метка все еще сохраняет первое присвоенное изображение в момент загрузки страницы. Поэтому ярлык всегда имеет активный образ. Что я делаю не так?

  • 1
    каково значение myLabel.data("image1")
  • 1
    Я предполагаю, что проблема в том, что URL изображений неверен. Лучший способ - поместить изображения в классы CSS, а затем просто изменить класс.
Теги:
background-image

2 ответа

0
Лучший ответ

Я нашел проблему

Как я уже сказал в своем вопросе, я присваивал изображение, подобное этому url (../images/active.png) no-repeat, но свойство css было неправильным. Вместо использования backgroundImage или background-image, наконец, я использовал "фон" и период. проблема "без повтора" вызывала проблему.

myLabel.data("image1") = "url('../images/active.png') no repeat;";
myLabel.css("background" : myLabel.data("image1"));

Или вы можете это сделать, если хотите использовать свойство background-image.

myLabel.data("image1") = "url('../images/active.png')";
myLabel.css("background-image" : myLabel.data("image1"));
myLabel.css("background-repeat" : "no-repeat");
1

попробуй это,

   var myLabel = $('[id$=lbl]');
    var myCheckBox = $('[id$=chk]');
    if (myCheckBox.prop('checked'))
    {


        myLabel.removeClass('active')
        myLabel.addClass('inactive');

    }
    else
    {
        myLabel.removeClass('inactive')
        myLabel.addClass('active');
    }

и определите css как

.active{background-image:url(../images/active.png) no-repeat; }
.inactive{background-image:url(../images/inactive.png) no-repeat;}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню