Использование jQuery для изменения src во всех классах, кроме текущего - PullRequest
0 голосов
/ 23 января 2012

Это в основном меню, которое не обновляет страницу.Я пытаюсь использовать только одно активное изображение одновременно, и у меня возникают проблемы с отменой выбора ранее выбранных пунктов меню.То есть это действует скорее как флажок, а не как переключатель.

$(function(){
    $(".img-swap").live('click', function() {
        if ($(this).attr("class") == "img-swap") {
            this.src = this.src.replace("_off","_on");
        } else {
            this.src = this.src.replace("_on","_off");
        }
    });
});

Вот код, который jQuery пытается изменить

<div id="feedback-topic.buttons">
    <a href="#bug"><img src="lib/feedback-bug_off.jpg" alt="bug" width="75" height="49" border="0" class="img-swap" /></a>
    <a href="#content"><img src="lib/feedback-site_content_off.jpg" alt="bug" width="121" height="49" border="0" class="img-swap" /></a>
    <a href="#suggestion"><img src="lib/feedback-suggestion_off.jpg" alt="bug" width="117" height="49" border="0" class="img-swap" /></a>
</div>

Но яне могу понять, как отменить выбор (изменить src.replace) на всех кнопках, кроме только что нажатой опции.

Также есть идеи о том, как передать, какая опция была выбрана дляследующая страница, когда форма все это внутри отправляется?Я полагаю, что у меня должна быть невидимая форма, которая меняется в зависимости от того, что было выбрано, или есть более простые способы сделать это?

Ответы [ 2 ]

1 голос
/ 23 января 2012

Несмотря на ваши данные о отправке формы, способ переключения всего , за исключением this, заключается в использовании .not(this) или $(this).siblings(), если все совпадающие элементы фактически являются родственными элементами this:

this.src = this.src.replace('_off', '_on');

$('.img-swap').not(this).attr('src', function(index, attr) {
    return attr.replace('_on', '_off');
});

При этом используется версия обратного вызова из .attr() для изменения атрибута src соответствующих элементов на месте.

Рабочая демонстрация на http://jsfiddle.net/alnitak/6a28q

0 голосов
/ 23 января 2012

Сначала замените ON на OFF, затем используйте $ (this) .addClass ("_ on"), думаю, что это будет работать.

UPDATE Читайте быстро, не видел васпереключали изображения.

Поместите изображение src в css.классы .on и .off, тогда вы бы не переключали источник.

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