2009-08-23 10 views
1

Ich habe ein Bild, das die jQuery UI Slider div beim Klicken öffnet und ermöglicht Benutzern, einen Wert festzulegen, indem Sie den Ziehpunkt ziehen. Was ich jetzt versuche, ist, dieses Handle zu verbergen, wenn der Benutzer irgendwo anders auf der Seite klickt, aber das normale .blur Event scheint nicht zu funktionieren.Wie blende ich jQuery UI Slider auf Unschärfe?

$("#openPriceToSliderGif").click(function(){ 
     $("#slider-vertical").show(); 
     $("#slider-vertical").focus(); 
    }); 
    $("#slider-vertical").blur(function() { 
     $("#slider-vertical").hide(); 
    }); 

Antwort

0

Ok unterstützen wird, ist das, was ich zusammen, um diese Arbeit zu setzen haben zu machen. Danke DroidIn.net für Ihre Hilfe.

$(document).bind("click", function(e){ 
     if(e.target.id != "openPriceToSliderGif") 
     $("#slider-vertical").hide(); 
     return false; 
    }); 

    $("#openPriceToSliderGif").click(function(){ 
     $("#slider-vertical").toggle(); 
    }); 
1

Wahrscheinlich werden Sie mehr Glück auf der Definition globaler Onclick-Handler haben und es müssen Sie prüfen, ob Quelle der Veranstaltung nicht Ihre Schieber ist. Wenn nicht - mach deine Magie.

Grundsätzlich - wenn Sie nicht enthalten Element wie Textfeld spinner oder verknüpfen Sie es nicht Fokus/Unschärfe

+0

Lassen Sie mich sehen, wenn ich das richtig verstehe. Was Sie sagen, eine Funktion sollte jedes Mal ausgelöst werden, wenn ich irgendwo auf die Seite klicke. Dort sollte ich meinen Slider verstecken, es sei denn, der Klick auf meinem GIF würde meinen Slider zeigen? Ich kam mit diesem Code, aber ich habe ein Problem beim Finden der ID des Elements, auf das ich geklickt habe. $ (this) .id funktioniert eindeutig nicht ... $ (this.document) .click (function() { if ($ (this) .id! = $ ("# openPriceToSliderGif"). id) $ ("# hiddenPriceTo"). hide(); }); – Leon

+0

sollten Sie slider.bind verwenden ("click", function (e) {}), (lesen Sie diese Seite http://is.gd/2wxvy für Details). Jetzt - die anonyme Funktion wird e-Parameter haben, der das Ereignis (http://is.gd/2wxAg) ist - das alle Arten von nützlichen Informationen enthält, die Ihnen sagen können, wo der Klick stattgefunden hat. Grundsätzlich bedeutet diese Methode "bind mich an den Klick irgendwo im Fenster". BTW, wenn Sie keine weitere Verarbeitung möchten, wenn Sie mit Ihrer Logik fertig sind - geben Sie einfach false von Ihrer Handler-Funktion – Bostone

+0

Danke dafür. Ich habe versucht, für deine Antwort zu stimmen, aber ich muss mindestens Ruf 15 haben. Werde später abstimmen;) – Leon