Ответ 1
Try
$(function(){
$("#theLink").click(function(){
$(this).attr("href","http://tnbelt.com");
});
});
Можно ли изменить целевой URL-адрес в обработчике onclick? Как?
Я не хочу использовать такие вещи, как window.location = ...
, потому что он изменяет поведение браузеров (щелчок vs ctrl-click, открытие на новой вкладке, открытие в частности окна/кадра и т.д.). Я хочу чистое решение - просто измените URL-адрес, а остальные должны выполняться сами, как обычно.
$(...).click(function () {
if (check_some_condition)
// modify target url here...
// do not want to do window.location= - this is not clean
// as it changes the browsers' behaviour (ctrl-click, opening in particular window/frame etc.)
return true;
});
Try
$(function(){
$("#theLink").click(function(){
$(this).attr("href","http://tnbelt.com");
});
});
Изменить: Обновлен код, потому что выполняется обработчик событий script, а затем действие по умолчанию происходит,
Добавлена ниже версия, чтобы показать вам, что вы можете использовать .click
, поскольку вы не заметили ссылку режима quirks, которую я поделил с вами. DEMO
$(document).ready (function () {
$('#changeMe'). click (function (e) {
var goLucky = Math.floor(Math.random()*12);
if (goLucky % 2 == 0) {
this.href = "http://www.google.com";
} else {
this.href = "http://www.hotmail.com";
}
});
});
Прокомментировал e.preventDefault();
и $(this).click()
, поскольку он не требуется.
$(document).ready (function () {
$('#changeMe').one ('click', function (e) {
//e.preventDefault();
this.href = "http://www.google.com";
//$(this).click();
});
});
Рассмотрим скрытый тег привязки
<a id="linkId" href="myPageToGo.html" class="thickbox" title="" style="visibility:hidden;">Link</a>
Затем вы можете имитировать щелчок якоря в коде...
$(...).click(function () {
if (check_some_condition)
$('#linkId').click();
return true;
});
Оберните элемент, щелкнув внутри метки привязки...
$(...).click(function () {
if (check_some_condition)
$(this).wrap('<a id="new1" />');
$('#new1').click();
return true;
});
Да.
$(this).attr('href', 'http://example.com/');