Курсор сбрасывается по умолчанию после добавления указателей-событий: none в Firefox

Я столкнулся с странным поведением CSS отношений между CSS pointer-events и cursor правилами в Firefox. Когда я устанавливаю элемент cursor на любое значение, отличное от auto (скажем, wait), тип курсора изменяется соответственно, как и ожидалось. Однако, когда я также добавляю pointer-events: none к одному и тому же элементу, курсор находится от reset до auto. То же самое происходит, если я использую cursor: wait !important. Те же правила корректно работают в Chromium и IE (!).

В начале я подумал, что это может быть ожидаемое поведение, когда pointer-events: none установлен, но в соответствии с MDN раздел none:

Элемент никогда не является объектом событий мыши; однако события мыши могут нацеливаться на его элементы-потомки, если у этих потомков есть указатели-события, установленные на какое-то другое значение. В этих обстоятельствах события мыши инициируют прослушиватели событий на этом родительском элементе по мере необходимости на пути к/из потомка во время фаз захвата/пузырька события.

Похоже, что события Javascript, а не события CSS не будут распространяться.

Вопрос: есть ли способ использовать как pointer-events: none, так и cursor: wait для одного и того же элемента в Firefox? Кроме того, я прав насчет интерпретации событий Javascript/CSS в отношении упомянутой выдержки?

Если это имеет значение, я использую Firefox 31 на Ubuntu 64bit

Здесь fiddle. В этом случае я добавляю правила динамически, но то же самое происходит при использовании только CSS. Сценарий, о котором я говорю, это Change cursor to wait --> Disable pointer events

Ответ 1

Оказывается, вы должны установить курсор на родительский элемент.

Установка обоих стилей для одного элемента или курсора на вложенном элементе сбрасывает курсор на указатель по умолчанию.

<div class="cursor-wait">
    <a href="#">wait</a>
    <div class="no-pointer-events">
        <a href="#">wait > no events</a><!-- works here -->
    </div>
</div>

Подробнее см. Fiddle.