Мне нужно вызвать событие click по ссылке, а затем, если ни один из прослушивателей не заблокировал значение по умолчанию, измените местоположение.Имитировать собственный щелчок
Это то, что я получил до сих пор:
var $el = $('a#my_special_link');
var onClick = $el.attr('onclick');
// Hack to capture the event object
var ev_reference;
var ev_capture = function(ev) { ev_reference = ev; }
$el.bind('click', ev_capture);
// Don't leave out the onClick handler
if (typeof onClick == 'function')
$el.bind('click', onClick);
$el.trigger('click');
// Clean up
$el.unbind('click', ev_capture);
if (typeof onClick == 'function')
$el.unbind('click', onClick);
// Redirect if necessary
if (! ev_reference.isDefaultPrevented())
window.location = $el.attr('href');
Любые предложения по улучшению приветствуются.
PS: Да, именно так будет работать регулярная связь, за исключением того, что вы можете выполнять некоторую другую обработку между ними.
PPS: Нет, просто делается $ el.trigger ('click'); будет не изменить местоположение.
Это не будет перенаправлять или что угодно. Он выполняет только обработчик событий. –
Точно. Я уже запускаю обработчики событий. Мне нужна перенаправляющая часть. – scribu