2009-08-23 16 views
1

我有一個圖像打開點擊jQuery UI Slider股利,並允許用戶通過拖動手柄設置值。我現在想要做的就是當用戶點擊頁面上的其他任何地方時隱藏該句柄,但常規的.blur事件似乎不起作用。如何隱藏模糊的jQuery UI滑塊?

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

回答

0

好吧,這是我一直放在一起,使這項工作。 Thanx DroidIn.net的幫助。

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

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

也許你會有更好的運氣來定義全局onclick處理程序,那裏你需要檢查事件的來源是不是你的滑塊。如果沒有 - 做你的魔力。

基本上 - 如果微調器不包括元素,如文本字段或鏈接也不會支持重點/模糊

+0

讓我看,如果我得到這個權利。 你說的是,每當我點擊頁面上的某個地方時,就會觸發一個函數。在那裏,我應該隱藏我的滑塊,除非點擊發生在我的gif應該顯示我的滑塊? 我想出了這段代碼,但是我找到了點擊元素的id的問題。 $(this).id顯然不起作用... $(this.document).click(function(){if(this).id!= $(「#openPriceToSliderGif」).id) $(「#hiddenPriceTo」)。hide(); }); – Leon 2009-08-24 11:42:44

+0

你應該使用slider.bind(「click」,function(e){}),(閱讀此頁http://is.gd/2wxvy瞭解詳情)。現在 - 匿名函數的e參數是Event(http://is.gd/2wxAg) - 它包含各種有用的信息,可以告訴你發生點擊的位置。基本上這種方法意味着「綁定我到窗口中任何地方的點擊」。順便說一句,如果你不想做任何進一步的處理,當你完成你的邏輯 - 只需從你的處理函數返回false – Bostone 2009-08-24 16:04:09

+0

感謝你。我試圖爲你的答案投票,但我必須至少有聲望15.稍後投票;) – Leon 2009-08-24 18:11:07