Проблема связана с путем изображения.
В исходном файле CSS указанный путь указывается относительно этого файла CSS.Таким образом, файл CSS имеет значение www.example.com/wp-content/themes/thesis_18/custom/
, а затем указывает 'images/subway.jpg'
, поскольку URL-адрес изображения будет загружать его из www.example.com/wp-content/themes/thesis_18/custom/images/subway.jpg
.
. Однако при изменении стиля с помощью JQuery ваш новый стиль не устанавливаетсяв файле CSS, поэтому его URL-адрес не относится к этой таблице стилей.
Я думаю, что вам нужно будет установить URL-адрес фонового изображения относительно главной страницы, поскольку нет другого контекста, который может быть относительнымво время выполнения.Я бы предположил, что лучшим способом было бы использовать полный путь от корня вашего домена, начиная с обратной косой черты, например:
$("body.custom").css({background: "url('/wp-content/themes/thesis_18/custom/images/strawhat.jpg') repeat;"});
Это заставит его получить правильное изображение.
Надежда, которая помогает объяснить вещи.
[EDIT] Что касается комментария ОП, заявляющего, что он все еще не может заставить его работать:
Предполагая, что все ваши пути правильны, это должно было сработать.Я не могу доказать это или объяснить, почему это не сработало, не увидев фактически нерабочего примера, но я могу дать вам несколько советов о том, как отследить причину проблемы.
Этот советиспользовать Firebug.(или любой другой инструмент разработки, который поставляется с другими браузерами, но Firebug по-прежнему мой любимый).
Firebug - это инструмент отладки на основе браузера, который имеет несколько функций, которые вы можете использоватьчтобы отследить проблему.
Во-первых, у нее есть вкладка «Сеть», которая позволяет вам наблюдать, когда выполняются HTTP-запросы и каковы были результаты.Если у вас это открыто во время работы вашего скрипта, вы должны увидеть запрос на создание нового изображения.
Если вы видите, что запрос сделан, то вы можете проверить, что он выполнен успешно, то есть не ошибка 404 илиничего подобного.Это кажется мне наиболее вероятной проблемой.Если он выдает ошибку, вы можете посмотреть на тип ошибки и URL-адрес, который был вызван - если это не так, это должно дать вам большую подсказку о том, как ее исправить.
Если вы этого не сделаетеесли запрос выполняется, вы можете использовать вкладку CSS Firebug, чтобы убедиться, что таблица стилей для элемента действительно обновлена.Опять же, это должно дать вам хорошие возможности для исследования в любом случае.
Далее, вкладка Firebug JS включает в себя полный отладчик Javascript, который позволяет вам ставить точки останова в коде и построчно проходить по нему.1031 *
Если ничего не получится, опубликуйте ссылку на версию вашей страницы, которая не работает, и я посмотрю, смогу ли я отработать ее оттуда.
[EDIT] Наконец-то найденоit:
$("body.custom").css({background: "url('/wp-content/themes/thesis_18/custom/images/strawhat.jpg') repeat;"});
В приведенной выше строке проблема заключается в том, что точка с запятой не требуется внутри строки таблицы стилей после слова repeat
.Это должно быть:
$("body.custom").css({background: "url('/wp-content/themes/thesis_18/custom/images/strawhat.jpg') repeat"});
Хех.Легко пропустить.
Я нашел это в конце, вставив строку кода выше в консоль Firebug и пробуя разные вещи, пока он не заработал.: -)