2009-08-23 37 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