8 Stimmen

jquery link tag aktivieren deaktivieren

Ich möchte den Link während des Ladens deaktivieren, für den unten angegebenen Code

<span id="addlink">"<%= f.add_associated_link('Add Task', @project.tasks.build, :class=>"add") %></span>

Ich habe es mit den folgenden Codes versucht, aber es hat nicht funktioniert

$("#addlink").attr("disabled", "disabled"); 

y

$("a.add").hide();

27voto

RaYell Punkte 67866
function disableLink(e) {
    // cancels the event
    e.preventDefault();

    return false;
}

Wenn Sie sie deaktivieren wollen, rufen Sie

$('#addlink').bind('click', disableLink);

Wenn Sie einen deaktivierten Link aktivieren wollen, rufen Sie

$('#addlink').unbind('click', disableLink);

4voto

rahul Punkte 179143
$('#addlink').click(function(e) {
    e.preventDefault();
    //do other stuff when a click happens
});

return false;

verhindert das Auftreten des Standardereignisses und und verhindert auch, dass das Ereignis in die Höhe schießt

Die Wahl zwischen diesen beiden hängt also von Ihrem Verwendungszweck ab. Wenn Sie die Standardaktion stoppen wollen und das Ereignis auch in die Luft gehen soll, verwenden Sie preventDefault

2voto

Ich würde eine Mischung aus der Lösung von RaYell und phoenix wählen und Folgendes hinzufügen jQuery's Namespacing zu der Mischung:

$('#addlink').bind('click.killlink',function(event){
    event.preventDefault();
    // You can do any additional onClick behavior here
});

Um die Bindung dieses Ereignisses sowie aller anderen zugehörigen Ereignisse (jeglicher Art), die Sie mit dem .killink-Namensraum gruppieren, aufzuheben, müssen Sie Folgendes ausführen:

$('#addlink').unbind('.killlink');

Wie phoenix bereits sagte, ist die Verwendung von return false verhindert, dass das Ereignis in die Höhe schießt. preventDefault() hat den zusätzlichen Vorteil, dass es sehr eindeutig ist (im Gegensatz zu return false (was je nach Kontext viele verschiedene Dinge bedeuten kann).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X