2012-01-11 13 views
17

Potrzebuję alertu "OK"/"Anuluj" javascript po kliknięciu łącza.Alert javascript popup na łączu kliknij

mam kodu Alert:

<script type="text/javascript"> 
<!-- 
var answer = confirm ("Please click on OK to continue.") 
if (!answer) 
window.location="http://www.continue.com" 
// --> 
</script> 

Ale jak mogę zrobić to tak to działa tylko po kliknięciu pewien związek?

Odpowiedz

10

prostu zrobić to funkcja,

<script type="text/javascript"> 
function AlertIt() { 
var answer = confirm ("Please click on OK to continue.") 
if (answer) 
window.location="http://www.continue.com"; 
} 
</script> 

<a href="javascript:AlertIt();">click me</a> 
+1

dzięki, jeśli kliknę anulować mimo że wciąż otwiera link/ – user1022585

+0

@ user1022585, powinieneś "zwrócić false", aby zatrzymać nawigację. Zobacz moją odpowiedź poniżej - metoda 'Confirm' zwraca' boolean', z której możesz wyjść z ... – xandercoded

+0

Przepraszam Skopiowałem twój kod, a twój kod był błędny. jeśli użytkownik powie "ok" odpowiedź ustawi "prawda", więc nie musimy "!", zmieniłem to. – ocanal

3

W tym celu trzeba dołączyć obsługi do konkretnego kotwicy na stronie zrobienia. W przypadku takich operacji znacznie łatwiej jest użyć standardowej struktury, takiej jak jQuery. Na przykład, gdybym miał następujący kod HTML

HTML:

<a id="theLink">Click Me</a> 

mogę używać następujące jQuery do hookup zdarzenie do tego konkretnego linku.

// Use ready to ensure document is loaded before running javascript 
$(document).ready(function() { 

    // The '#theLink' portion is a selector which matches a DOM element 
    // with the id 'theLink' and .click registers a call back for the 
    // element being clicked on 
    $('#theLink').click(function (event) { 

    // This stops the link from actually being followed which is the 
    // default action 
    event.preventDefault(); 

    var answer confirm("Please click OK to continue"); 
    if (!answer) { 
     window.location="http://www.continue.com" 
    } 
    }); 

}); 
25

Można użyć atrybutu onclick, tylko return false jeśli nie chcesz kontynuować;

<script type="text/javascript"> 
function confirm_alert(node) { 
    return confirm("Please click on OK to continue."); 
} 
</script> 
<a href="http://www.google.com" onclick="return confirm_alert(this);">Click Me</a> 
+0

To faktycznie działa znacznie lepiej - bardziej ogólne rozwiązanie, które powinno zostać zaakceptowane. –

11

Pojedyncza linia działa dobrze:

<a href="http://example.com/" 
onclick="return confirm('Please click on OK to continue.');">click me</a> 

Dodanie kolejnego wiersza z innego łącza na tej samej stronie działa zbyt dobrze:

<a href="http://stackoverflow.com/" 
onclick="return confirm('Click on another OK to continue.');">another link</a> 
0
function alert() { 
    var answer = confirm ("Please click on OK to continue.") ; 

    if(answer){ 
     window.location="url"; 
    } 
} 
+1

Aby zwiększyć jakość odpowiedzi (i zrobić to bez oznaczania), można wyjaśnić, dlaczego jego kod nie działa. Czasami słowa pomagają więcej niż kod. –

Powiązane problemy