Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery/Javascript日期选择器概念插件_Javascript_Jquery - Fatal编程技术网

Jquery/Javascript日期选择器概念插件

Jquery/Javascript日期选择器概念插件,javascript,jquery,Javascript,Jquery,我试着模仿datepicker的功能,比如聚焦、模糊和点击。 焦点:当光标位于文本字段时,日期框出现 模糊:当光标不在文本字段中时,日期框消失 单击:当用户单击日期框时,文本字段中的新值消失 我试图创造一个类似的概念: 焦点:当光标位于文本字段时,将显示带有图标的div 模糊:图标将消失 点击:点击图标时,会执行一定的逻辑代码 问题: 当我尝试单击图标时,会首先调用模糊事件,因此单击事件不会触发 这是我的密码: $(文档).ready(函数(){ $(“.test”).searchHelp(

我试着模仿datepicker的功能,比如聚焦、模糊和点击。 焦点:当光标位于文本字段时,日期框出现 模糊:当光标不在文本字段中时,日期框消失 单击:当用户单击日期框时,文本字段中的新值消失

我试图创造一个类似的概念: 焦点:当光标位于文本字段时,将显示带有图标的div 模糊:图标将消失 点击:点击图标时,会执行一定的逻辑代码

问题: 当我尝试单击图标时,会首先调用模糊事件,因此单击事件不会触发

这是我的密码:

$(文档).ready(函数(){ $(“.test”).searchHelp(); $(“.test2”).searchHelp(); }); (函数($){ $.fn.extend({ 搜索帮助:功能(选项){ 返回此值。每个(函数(){ var$this=$(this); var searchIcon=newSearchIcon(); var helpTable=newSearchHelpTable(); jQuery(“body”).prepend(searchIcon); jQuery(“body”).prepend(helpTable); var x=$this.position().left+$this.width(); 变量y=$this.position().top; var once=假; css({position:'absolute',left:x,top:y}); $this.bind(“焦点”,函数(){ searchIcon.show(); }); $this.bind(“模糊”,函数(){ searchIcon.hide(); }); /*$(文档).bind('mousedown',函数(ev){ 如果(ev.target!=搜索图标){ searchIcon.hide(); } });*/ 搜索图标。单击(函数(){ /*helpTable.show(); 如果(!一次){ jQuery(“tr”,helpTable).dblclick(函数(){ $this.val($(this.children(“td._key”).text()); helpTable.hide(); searchIcon.hide(); }); 一次=真; }*/ 警惕(“做点什么!”); }); }); 函数newSearchIcon(){ var icon=jQuery(“”); 图标。追加(“[@]”); hide(); 返回图标; } 函数newSearchHelpTable(){ var helpSHTable=jQuery(“”); helpSHTable.load(“from.htm”); helpSHTable.hide(); 返回helpSHTable; } } }); })(jQuery); div.searchHelp表tbody tr:hover{ 背景:橙色; } div.searchHelp表tbody tr:激活{ 背景:红色; } div.searchHelp表tbody tr td.\u键{ 背景:绿色; }


我希望能得到你们的帮助,如果你们改变主意,谢谢

searchIcon.click(function(){

mousedown在输入失去焦点之前触发。但是,在鼠标向下运行后,仍会隐藏图标。如果不希望图标在单击后消失,请让鼠标向下设置一个标志,然后让模糊检查该标志。大概是这样的:

var iconClicked=false;

searchIcon.mousedown(function(){
   ...
   iconClicked=true;
}

$this.bind("blur",function(){
   if(iconClicked){
      iconCLicked=false;
   }else{
      searchIcon.hide();
   }
});
唯一的缺点是,这是鼠标向下,而不是点击,但这取决于你试图这样做,这可能是可以接受的

编辑:发现这个,第一个建议很有趣

searchIcon.mousedown(function(){
var iconClicked=false;

searchIcon.mousedown(function(){
   ...
   iconClicked=true;
}

$this.bind("blur",function(){
   if(iconClicked){
      iconCLicked=false;
   }else{
      searchIcon.hide();
   }
});