как изменить программный атрибут onmouseover? [Дубликат]

0

мой html-код здесь. функции события мыши, подобные этому

<li class="gnb1" onmouseover="fn1('param_01');" onmouseout="fn2('param_02','param_01');" > ...

Я хочу, чтобы функция изменения и параметры были программируемыми как jquery или javascript.

$("li.gnb1").attr("onmouseover", "new_function_name()");

этот код не работает. Помоги мне. покажите свой ход!

  • 1
    Вы не должны использовать атрибуты html для обработчиков событий, если вы можете избежать этого
  • 1
    Что вы сделали для устранения проблемы? Является ли new_function_name глобальным? Это прекрасно работает для меня здесь: jsfiddle.net/R27tq .
Показать ещё 3 комментария
Теги:

1 ответ

0

Вы можете отвязать старый обработчик и добавить новый.

// To remove
$( "#foo").unbind( "click" );

// Then add new binding
$( "#foo").click(function () { });

Документация для unbind находится здесь: http://api.jquery.com/unbind/

[Изменить как комментарий]

Если у вас есть возможность изменить HTML, вы можете использовать jQuery для выполнения ваших привязок, а также ваших развязок.

[Дальнейшая редакция]

Однако вы можете удалить обработчик события inline с помощью removeAttr

$('#foo').removeAttr('onclick');
  • 2
    Я не думаю, что unbind позволяет удалять встроенные обработчики событий.
  • 0
    Вы можете просто использовать jQuery для привязки обработчика событий :)
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню