Опытный щелчок, наведение мыши и mouseout не могут сотрудничать?

Вы также можете удалить его, получив количество контроллеров представления, которое у вас есть, и удалив их все, кроме последнего

if let viewControllerCount = self.navigationController?.viewControllers.count {
    self.navigationController?.viewControllers.removeFirst(viewControllerCount - 1)
}

Если у вас есть 5 контроллеров представления, вы должны вызвать removeFirst (5-1) так он может удалить первые 4 контроллера вида.

5
задан Rob W 28 December 2011 в 11:50
поделиться

5 ответов

Если нет что-то еще происходящее в законченной мыши и, почему бы не использовать CSS?

#izzy:hover { color: '#FFFFFF'; }

Однако я немного смущен относительно того, что точно Вы хотите произойти. Принятие Вас хочет кнопку, белую, если это было нажато или если мышь по нему. У меня был бы обработчик события Click, добавляет нажатый класс, как так:

$("izzy").observe('click', function() {
    $('izzy').addClass('selected');
});

И CSS как так

#izzy { color: '#666666'; }
#izzy:hover, #izzy.selected { color: '#FFFFFF'; }

Это имеет преимущество разделения состояния - clicked/not-click и мышь по - от стиля - черный или серый. Прямо сейчас они все смешаны во вместе, создав беспорядок и открыв себя для ошибок.

6
ответ дан 14 December 2019 в 04:50
поделиться

При отодвигании курсора от кнопки после нажатия на него последнее событие является mouseout, таким образом, это происходит, неважно, если Вы нажимаете или нет.

Если Вы хотите избежать mouseout эффекта, когда он нажат, попытайтесь установить флаг при нажатии и abortind событие mouseOut, если флаг установлен.

0
ответ дан 14 December 2019 в 04:50
поделиться

Вы подразумеваете, что Вы бледный щелчок мышью для порождения изменения permenant в стиле, который не заменяется mouseout? Если так, попытайтесь использовать флаг, как так:

var wasClicked = false;

$("izzy").observe('mouseover', function() {
    if (!wasClicked) $('izzy').setStyle({ color: '#FFFFFF' });
});

$("izzy").observe('mouseout', function() {
    if (!wasClicked) $('izzy').setStyle({ color: '#666666' });
});

$("izzy").observe('click', function() {
    $('izzy').setStyle({ color: '#FFFFFF' });
    wasClicked = true;
});
2
ответ дан 14 December 2019 в 04:50
поделиться

Установите состояние для предотвращения других событий:

var clicked = false
$("izzy").observe('mouseover', function() {
     if(!clicked) {
        $('izzy').setStyle({ color: '#FFFFFF' });
     }
});

$("izzy").observe('mouseout', function() {
     if(!clicked) {
        $('izzy').setStyle({ color: '#666666' });
     }
});

$("izzy").observe('click', function() {
    clicked = true
    $('izzy').setStyle({ color: '#cccccc' });
});
0
ответ дан 14 December 2019 в 04:50
поделиться

Используя CSS для парения и выбранного класса для окраски элемента, вероятно, лучший выбор. Однако, если Вы просто хотите, чтобы быстрое исправление кодировало Вас, уже имеют в распоряжении Вас, мог бы прекратить наблюдать событие mouseOut после того, как оно было нажато.

$("izzy").observe('click', function(e) {
     e.element().setStyle({ color: '#FFFFFF' });
     e.element().stopObserving('mouseout');
});
0
ответ дан 14 December 2019 в 04:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: