#javascript #jquery
#javascript #jquery
Вопрос:
У меня проблема со следующей строкой:
document.getElementById("giftcard").getElementsByTagName("label").style.backgroundImage ="url(giftcard_icon-d.jpg)";
Я пытаюсь изменить фоновое изображение после нажатия на label
.
У меня действительно есть 5 label
секунд на странице, но когда я нажимаю на label
, фон должен изменить его. Другие надписи следует сбросить, чтобы использовать это giftcard_icon-d.jpg
изображение в качестве фона.
Как я могу это исправить?
$(document).ready(function() {
$('#giftcard label').click(function() {
document.getElementById("giftcard").getElementsByTagName("label").style.backgroundImage ="url(giftcard_icon-d.jpg)";
this.style.backgroundImage ="url(giftcard_icon-a.jpg)";
});
Комментарии:
1. Что именно происходит? Фон не меняется ни для одного из них???
Ответ №1:
Если вы используете jQuery, это должно сработать:
$(document).ready(function() {
$('#giftcard label').click(function() {
$("#giftcard label").css("background-image", "url(giftcard_icon-a.jpg)");
});
});
Но это также зависит от того, правильный ли идентификатор, присутствует ли метка и допустим ли URL изображения.
Для нескольких label
вас должен устраивать селектор:
$("#giftcard > label").css("background-image", "url(giftcard_icon-a.jpg)");
Для обновления после завершения именно того, что вы хотели:
$('#giftcard label').click(function() {
$("#giftcard label").css("background-image", "url(giftcard_icon-d.jpg)");
$(this).css("background-image", "url(giftcard_icon-a.jpg)");
});
Комментарии:
1. Идеально! теперь это работает. Я использовал этот способ: ‘$ (‘#ярлык подарочной карты’).click(функция() { $(«ярлык подарочной карты #»).css(«фоновое изображение», «url(giftcard_icon-d.jpg )»); this.style.BackgroundImage =»url (giftcard_icon-a.jpg )»; }); ‘
2. Да, я правильно разработал то, что вы хотели, после того, как я опубликовал — я добавлю это к ответу.
Ответ №2:
Во-первых, ваше смешивание ванильного javascript и jquery здесь кажется немного глупым. Если вы хотите изменить другие метки, чтобы «сбросить» их, вы можете сделать что-то вроде этого:
$(document).ready(function() {
$('#giftcard').delegate('label', 'click', function() {
$(this).css('background', 'url(giftcard_icon-d.jpg)');
$('#giftcard > label').not(this)
.css('background', 'url(giftcard_icon-a.jpg)');
});
});
скрипка: http://jsfiddle.net/garreh/GUFtx
Ответ №3:
Если я правильно понял, это должно сработать
$(function() {
$('#giftcard label').click(function() {
$('#giftcard label').css("background-image", "url(giftcard_icon-d.jpg)");
$(this).css("background-image", "url(giftcard_icon-a.jpg)");
});
});
рабочий пример
http://jsfiddle.net/FvNdR
Комментарии:
1. @ XML guy Я предполагаю, что ваши сомнения были только в том, как установить свойства стиля в jquery, когда @ Mr. Disappointment опубликовал свой ответ, вы получили идею и решили самостоятельно.