Поскольку объект события "evt" не передан из параметра, все еще возможно получить этот объект?
Нет, ненадежно.IE и некоторые другие браузеры делают его доступным как window.event
(не $(window.event)
), но это нестандартно и поддерживается не всеми браузерами (как известно, Firefox не поддерживает).
Вам лучше пройтиобъект события в функцию:
<a href="#" onclick="myFunc(event, 1,2,3)">click</a>
Это работает даже в браузерах не IE, потому что они выполняют код в контексте, который имеет переменную event
(и работают в IE, потому что event
разрешает вwindow.event
).Я пробовал это в IE6 +, Firefox, Chrome, Safari и Opera.Пример: http://jsbin.com/iwifu4
Но ваша ставка лучший заключается в использовании современной обработки событий:
HTML:
<a href="#">click</a>
JavaScript с использованием jQuery (посколькувы используете jQuery):
$("selector_for_the_anchor").click(function(event) {
// Call `myFunc`
myFunc(1, 2, 3);
// Use `event` here at the event handler level, for instance
event.stopPropagation();
});
... или если вы действительно хотите передать event
в myFunc
:
$("selector_for_the_anchor").click(function(event) {
myFunc(event, 1, 2, 3);
});
Селектор может быть любым, что идентифицируетякорьУ вас есть очень богатый набор на выбор (почти весь CSS3, плюс некоторые).Вы можете добавить id
или class
к якору, но опять же, у вас есть другие варианты.Если вы можете использовать то, что находится в документе, а не добавлять что-то искусственное, замечательно.