2011-08-14 12 views

Odpowiedz

61

Niech Twój powrót zwrotna false i przekazać, że się do onclick Handler:

<a href="#" onclick="return callmymethod(24)">Call</a> 

function callmymethod(myVal){ 
    //doing custom things with myVal 
    //here I want to prevent default 
    return false; 
} 

Aby utworzyć w utrzymaniu kod powinieneś jednak powstrzymać się od używania "wbudowanego kodu Javascript" (tj. kodu znajdującego się bezpośrednio w znaczniku elementu) i zmodyfikować zachowanie elementu za pomocą dołączonego Plik źródłowy JavaScript (nazywa się unobtrusive Javascript).

dopłata:

<a href="#" id="myAnchor">Call</a> 

Kod (osobny plik):

// Code example using Prototype JS API 
$('myAnchor').observe('click', function(event) { 
    Event.stop(event); // suppress default click behavior, cancel the event 
    /* your onclick code goes here */ 
}); 
+0

http://jsfiddle.net/aamir/Tcs3w/ nie działa –

+1

@AamirAfridi Tak, działa. Powinieneś dostosować swoje skrzypce i zmienić 'onLoaded' na' no wrap'. Lub po prostu wpisz własny .html markup. –

+0

Proszę zobaczyć odpowiedź poniżej! "Moim zdaniem odpowiedź jest błędna! Zapytał on event.preventDefault(), kiedy po prostu zwróci false, wywołuje event.preventDefault(); AND event.stopPropagation(); również!" –

27

Spróbuj

<a href="#" onclick="callmymethod(24); return false;">Call</a> 
+0

ładne po prostu najlepsze. Chcę tego samego dla \t event.preventDefault(); –

16

moim zdaniem odpowiedź jest źle! Poprosił o event.preventDefault();, gdy po prostu zwróci false; to też nazywa się event.preventDefault(); I event.stopPropagation();!

Można go rozwiązać przez to:

<a href="#" onclick="callmymethod(event, 24)">Call</a> 

function callmymethod(event, myVal){ 
    //doing custom things with myVal 

    //here I want to prevent default 
    event.preventDefault(); 
} 
+4

Opieracie się na 'window.event', który nie zawsze jest dostępny w różnych przeglądarkach. –

2

Wystarczy umieścić "javascript: void (0)", w miejsce "#" w href tagu

<a href="javascript:void(0);" onclick="callmymethod(24)">Call</a> 
0

swoja klasę lub identyfikator do elementu i użyj funkcji jquery unbind();

$(".slide_prevent").click(function(){ 
       $(".slide_prevent").unbind(); 
       }); 
5

Można złapać zdarzenie, a następnie zablokować go preventDefault() - współpracuje z czystym JavaScript

document.getElementById("xyz").addEventListener('click', function(event){ 
    event.preventDefault(); 
    console.log(this.getAttribute("href")); 
    /* Do some other things*/ 
}); 
+0

to jest poprawna odpowiedź. Dzięki –

6

ten pracował dla mnie

<a href="javascript:;" onclick="callmymethod(24); return false;">Call</a> 
+1

To jest jedyna rzecz, która zadziałała !!! Dzięki! –

+0

nie martw się, cieszę się, że to słyszę :) – Pixelomo

Powiązane problemy