2013-06-29 1 views
1
<HTML> 
<HEAD> 
<TITLE>Statements with returnValue</TITLE> 
</HEAD> 
<BODY> 
<A HREF="c:" onclick="event.returnValue=false;alert('The Hyperlink has been cancelled.');">Drive C</A> 
</BODY> 
</HTML> 

Вопрос:issue with event.returnValue = false; в Js

У нас есть эта строка: event.returnValue=false; но почему alert() все еще получил excuted? то, какова цель использования event.returnValue=false;?

+0

'event.returnValue = false;' is preventDefault (позже после завершения этой функции). Поэтому остальная часть этой функции все еще выполняется –

+0

Проверьте это http://stackoverflow.com/questions/6085418/event-preventdefault-vs-event-returnvalue –

+0

Кроме того, почему вы используете Internet Explorer? – Ryan

ответ

0

Есть два способа предотвратить поведение по умолчанию нажатия (в данном случае, перейдя к "c:"):

  1. return false от обработчика события. Это немедленно выйдет из текущего обработчика событий и предотвратит дальнейшие действия.

  2. . Это не сразу останавливает текущий обработчик событий (то есть onclick), но после его завершения любые дальнейшие действия будут предотвращены.

Поскольку event.returnValue не поддерживается во всех браузерах, я определенно рекомендую использовать return false вместо этого - просто не забывать, что она должна быть в конце обработчика OnClick.

0

Цель event.returnValue здесь: MSDN

Это не означает, однако, изменить порядок выполнения. Вы должны были бы иметь return заявления, чтобы изменить порядок исполнения:

<HTML> 
<HEAD> 
<TITLE>Statements with returnValue</TITLE> 
</HEAD> 
<BODY> 
<A HREF="c:" onclick="event.returnValue=false; return;alert('The Hyperlink has been cancelled.');">Drive C</A> 
</BODY> 
</HTML>