JavaScript OnMouseOver не работает в chrome [дубликат]

Пакет Visual Studio NuGet необходимо обновить для новой версии набора инструментов

У меня просто возникла проблема с подключением libpng с Visual Studio 2013. Проблема в том, что в файле пакета были только библиотеки для Visual Studio 2010 и 2012.

Правильное решение - надеяться, что разработчик выпустит обновленный пакет и затем обновит его, но он работал для меня, взломав дополнительную настройку для VS2013, указав на файлы библиотеки VS2012.

Я отредактировал пакет (в папке packages внутри каталога решения), найдя packagename\build\native\packagename.targets и внутри этого файла, скопировав все секции v110. Я изменил v110 на v120 в полях условий только очень осторожно, чтобы пути с именами файлов были все как v110. Это просто позволило Visual Studio 2013 подключиться к библиотекам на 2012 год, и в этом случае он работал.

9
задан KyleMit 7 August 2013 в 22:27
поделиться

4 ответа

Отключенные элементы не запускают события. Однако вы можете поместить DIV поверх элемента и прослушать событие, запущенное на этом элементе.

17
ответ дан Diodeus - James MacFarlane 24 August 2018 в 16:05
поделиться

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

button[disabled] {
  pointer-events: all;
}

Edit:

На самом деле, думаю, достаточно установить свойство auto. Как заметил @KyleMit, поддержка очень хорошая.

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

3
ответ дан Andres Zapata 24 August 2018 в 16:05
поделиться

Обновление: см. комментарий nathan william для некоторых серьезных ограничений этого подхода. Я обновил скрипт, чтобы более четко иллюстрировать проблемные области.


Развернувшись на том, что @Diodeus сказал, вы можете использовать jQuery для автоматического создания контейнера div для вас и обернуть его вокруг любых отключенных элементов.

  1. Используйте селектор :disabled , чтобы найти все отключенные элементы.
  2. Затем вызовите метод .wrap() с функцией обратного вызова
  3. Вы можете использовать this , чтобы ссылаться на текущий элемент в наборе.
  4. Затем используйте .attr() , чтобы получить значение onmouseover от родительского элемента и применить одно и то же значение к новому div.
$(':disabled').wrap(function() {
    return '<div onmouseover="' + $(this).attr('onmouseover') + '" />';
});

Демонстрация в jsFiddle

10
ответ дан Community 24 August 2018 в 16:05
поделиться

Почему вы не можете добавить заголовок в целевом элементе? название выглядит так же, как подсказка. И название работает на отключенных элементах.

, когда вы устанавливаете значение своего выбора, также задайте заголовок:

element.value=value;
element.title = element.options[element.selectedIndex].text;
1
ответ дан Justin 24 August 2018 в 16:05
поделиться
Другие вопросы по тегам:

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