2010-01-07 3 views
0

Мне нужно вызвать событие (например, показать предупреждение), если пользователь нажимает на ссылку (не кликает) - и я не хочу, чтобы он перенаправлял его на другую страницу. Другими словами - когда пользователь нажимает на ссылку - все как обычно, но когда пользователь нажимает ссылку, происходит только событие (отображается предупреждение), и пользователь останется на моей странице. Это возможно?Обнаруживать прессу по ссылке и вызывать событие?

Говоря нажатием, я имею в виду, что пользователь нажимает на ссылку хотя бы на одну секунду.

Спасибо.

ответ

0

После рафинированное ваш Questio п, этот код делает то, что вы ищете:

<script> 
var timeout; 
function onMouseDown(){ 
    timeout = window.setTimeout("alert(1)",1000); 
} 
function onMouseUp(){ 
    window.clearTimeout(timeout); 
} 
</script> 

<a href="#" onmousedown="onMouseDown();return false;" onmouseup="onMouseUp();return false;">click</a> 

Примечание:

  • return false вызывает HREF не будет выполнен,
  • Тайм-аут установлен и ясно убеждается, что пресса менее чем за секунду не будет срабатывать.

Это приведет к срабатыванию предупреждения, если пользователь нажимает и удерживает мышь в течение 1 секунды (1000 мс) по ссылке.

0

пресс.

Возможно, вы захотите использовать событие mousedown или keypress, в зависимости от того, что вы имеете в виду. (В последнем случае, вероятно, связаны с проверкой события, чтобы убедиться, что это ключ ввода, который был использован)

+0

Я думаю, что он Мент мыши вниз, как HREF = «JavaScript: предупреждение (...)» будет стрелять по MouseUp, и используя OnMouseDown с пустым HREF обновишь страницу (и не HREF не будет оказывать никакой связи , просто тест) –

+0

, произнеся «пресс», я имею в виду, что пользователь нажимает на ссылку хотя бы на секунду. – Alex1987

+0

Так что обновите вопрос, это означает, что общий ответ –

0

То, что я понял, что вы хотите:

пользователь нажал на ссылку -> огонь действие, но дон «т перенаправлять браузер Пользователь нажимает на ссылку (мыши вверх над тем же объектом, где была нажата кнопка) -> перенаправляет на другую страницу

следующий код может помочь

<html> 
<head> 

    <script type="text/javascript"> 
function mouse_pressed(){ 
    alert('pressed button'); 
} 
function goToLink(url){ 
    window.location = url; 
} 
</script> 
</head> 
<body> 

<label onclick="goToLink('http://www.google.com');" onmousedown="mouse_pressed();" >text</label> 
<body> 
</html> 
+0

Я тестировал его на сафари и получил тот же результат в обоих случаях - я получаю это предупреждение и перенаправляюсь в google – Alex1987

+0

Этикетка ?! Как, на самом деле, использование метки имеет смысл здесь? (И опирайтесь на вещи, которые работают: http://icant.co.uk/articles/pragmatic-progressive-enhancement/) – Quentin

+0

Я использую ярлык только для управления событиями (onclick, onmousedown). Его можно заменить любым другим тегом html, который позволяет эти события. –

0

В JQuery вы можете сделать это простым способом.

$("a").live('click',function(){ 
event.preventDefault(); 
}); 
Смежные вопросы