Ссылка HTML anchor - href и onclick оба?
Я хочу создать тег привязки, который запускает некоторый JavaScript, а затем переходит туда, куда его href
принимал. Вызов функции, которая выполняет мой JavaScript, а затем устанавливает window.location
или top.location
в расположение href
, не работает для меня.
Итак, представьте, что у меня есть элемент с идентификатором "Foo" на странице. Я хочу создать якорь, похожий на:
<a href="#Foo" onclick="runMyFunction(); return false;">Do it!</a>
Когда это щелкнуто, я хочу выполнить runMyFunction, а затем перейти на страницу #Foo
(не вызывать перезагрузку - с помощью top.location
приведет к перезагрузке страницы).
Предложения? Я рад использовать jQuery, если он может помочь здесь...
Ответы
Ответ 1
Только return true
вместо этого?
Возвращаемое значение из кода onClick
- это то, что определяет, обрабатывается ли связанное с кликом действие ссылки, - возврат false
означает, что он не обрабатывается, но если вы вернете true
, браузер продолжит обрабатывать его после возвращения функции и перехода к соответствующему якорю.
Ответ 2
<a href="#Foo" onclick="return runMyFunction();">Do it!</a>
и
function runMyFunction() {
//code
return true;
}
Таким образом, вы будете иметь функцию youf, и вы будете следовать по ссылке И вы будете следовать по ссылке точно после того, как ваша функция была успешно запущена.
Ответ 3
Если ссылка должна только изменить местоположение, если запуск функции завершен, тогда onclick="return runMyFunction();"
и в функции вы вернете true или false.
Если вы просто хотите запустить эту функцию, а затем пусть тег привязки выполняет свою работу, просто удалите оператор return false
.
В качестве побочного примечания вы, вероятно, должны использовать обработчик событий, так как встроенный JS не является очень оптимальным способом выполнения действий.