2012-04-10 4 views
0

Ich kann keine Lösung finden, um diese jquery-Ereignisse zum Laufen zu bringen.jquery: live (klick) ajax mit einem (klick) ereignis

$(window).one('click',function(){ 
    console.log('hide something'); 
    return false; 
}); 

$('a.ajax').live('click', function(e){ 
    console.log('ajax requesting'); 
    return false; 
}); 

Ich will, dass „A“ Element sollte statt dessen Standard als auch Ajax-Request tun, wie das Brennen des einmal Click-Ereignis des Fensters. Das Entfernen des "return false" von A's Klick löst das Klicken des Fensters aus, verhindert aber nicht das Standardverhalten nach dem ersten Klick und setzt die Nicht-Ajax-Anfrage fort.

Beide Handler sind in verschiedenen Schließung, so kann ich keine Variable erstellen, um es zu arbeiten, und ich möchte auch keine globale Variable erstellen.

Von meinem obigen Beispiel sollte zur Folge haben:
-> Ajax Anfordern (1. Klick)
-> ausblenden etwas (1. Klick)
-> Ajax anfordernden (2. Klick)
-> Ajax Anfordern (3. Klick)

Vielen Dank für Ihre Hilfe!

+0

Ich bemerke Sie neu hier. Willkommen bei StackOverflow! Wenn Ihnen meine Antwort gefallen hat (siehe unten), klicken Sie bitte auf die "Checkbox" daneben, um sie als die richtige Antwort zu akzeptieren. – nzifnab

+0

Ja. Ich habe gerade angefangen, ein ernsthaftes Hobby auf dem Gebiet der Programmierung zu betreiben, und mich entschieden, mit Web-Anwendungen zu beginnen. :) ... entschuldige mein Englisch übrigens. – Kevin

Antwort

2

Fügen Sie in Ihrer a Event-Handler als erste Zeile e.preventDefault() hinzu (und entfernen Sie die Rückgabe false).

$('a.ajax').live('click', function(e) { 
    e.preventDefault(); 
    console.log('ajax requesting'); 
}); 

‚return false‘ werden alle zukünftigen Ereignisse kündigen (auch die propagierte ein bis zu Fenster), aber prevent() wird nur die reguläre Aktion geschieht verhindern, aber die Ereigniskette fortzusetzen.

Weitere Informationen: jQuery e.preventDefault documentation

+0

Danke. Jetzt kenne ich den Unterschied zwischen return false und preventDefault(), da viele Artikel sagen, dass sie genau gleich sind. Vielen Dank für die Hilfe. – Kevin