2009-04-24 3 views
3

У меня есть ссылка какОтменить функциональность в HREF

<a href="www.site.com" class="cancel">go there </a> 

А потом у меня есть некоторые JQuery:

$(".cancel").click(function(){ 
     confirm("sure??"); 
}); 

Но когда я нажимаю отменить в окне предупреждения он все еще идет в www.site .com вместо того, чтобы ничего не делать. Как это решить?

ответ

6

Добавьте оператор возврата:

$(".cancel").click(function(){ 
    return confirm("sure??"); 
}); 
+0

избили меня на секунду. +1 –

+0

Обычно это происходит со мной :-) –

1

Вернуть bool из подтверждения()?

(Не так много Wizz JQuery, хотя :))

+0

У вас есть правильная идея +1 –

8

возвращение BOOL это старый способ сделать это, но не является предпочтительным методом в любом браузере и в наши дни у меня было много проблем. jQuery обертывает объект события и обрабатывает отмену события для вас.

http://docs.jquery.com/Events/jQuery.Event#event.preventDefault.28.29

$(".cancel").click(function(event){ 
    if (!confirm("Sure??")) 
     event.preventDefault(); 
}); 
1

Чад был прав.

event.preventDefault(); является правильным исправлением. Я попытался вернуть false для события click на теге привязки, и это не сработает, потому что я сначала вызывал window.location. Установив event.Default() в качестве первой строки в моем обработчике, я мог бы создать окно и открыть его, не допуская выполнение href.

Смежные вопросы