2013-10-18 28 views
0

我喜欢这三个链式事件:如何把链条事件的条件?

$("#Id") 
.click() 
.focus() 
.blur() 

我想要什么:

var A = 0; 
if(A == 0) 
execute blur event 

我要得到执行模糊事件只有当条件已经fullfilled。

我试图检查是否满足模糊事件的条件,但问题是,它执行的模糊功能基本上什么也没做,但我仍然有一个问题,我不得不点击两次,以获得我desierd从功能desierd另一个事件(注意:不是来自模糊事件的功能)。

我的主要问题: 我点击文本框,显示了我一个datepicker,当我选择日期我模糊事件执行,因为我离开文本框,然后从日期选择器的日期。我的模糊事件有一个回执执行,但问题是我不希望它执行时,我从我的日期选择日期选择日期。注意:当我选择一个日期我的代码,让我从我选择的日期那一周,所以它不是你的deafult“datepicker”功能,这与问题无关,但我认为这将是很好的提及它。

如果这是可能的,我深深感谢答案。 我ANY1认为以下soloutions我只想说,香港专业教育学院尝试,并没有奏效: 内模糊事件:

return false 
return true 
+0

您使用的是什么日期选择和你用什么代码来实例化? – jah

+0

我不完全确定你的意图是什么,但它是这样的,你想要的东西? http://jsfiddle.net/ZDzEw/ – jah

+0

即时通讯使用jQuery UI日期选择器。我在做什么: 当我点击一个文本框时,我得到我的日期选择器,当我选择一个日期时,我得到该日期的一周,但问题是,我有一个模糊功能,执行cuz即时离开文本框和选择日期。我想要什么:我只想模糊执行,如果我没有选择一个日期。为此,我在我的日期选择器上设置了选项,我把值设置为0/1,具体取决于如果日期选择器已打开或没有,但问题是我无法弄清楚如何执行模糊 – ThunD3eR

回答

1

我想我们所有人都学会了使用插件时的难题,因为它可能实际上包含了您可能想要用于更改的内容,所以阅读所有文档是很好的。

我更详细地阅读了jQuery datepicker,并了解到它有一个onClose选项,只要您点击datepicker就会执行该选项。所以我基本上做的是我从blur函数中获取代码并将其放入onClose函数(选项)中,然后瞧。

代码:

 $('#calWeekF') 
      .click(function() { this.select(); }) 
      .focus(function() { $('#calBtnShow').unbind('click', function() { $.overview.calendar.load() }); }) // De-activate button to prevent duplicate calls to loadCalendar 
      .datepicker({ 
       showWeek: true, 
       onSelect: function (date, object) { 

        $.MyProject.calendar.changeDate(new Date(date)); 

        $.astra.calendar.changeWeek($("#" + object.id).val()); 
        // Add some delay befor activating the button 
        $("#" + object.id).oneTime(200, 'calBtnShow', function() { $('#calBtnShow').click(function() { $.overview.calendar.load() }); }); 

       }, 
       onClose: function (date, object){ 
        $.astra.calendar.changeWeek($("#" + object.id).val()); 
        // Add some delay befor activating the button 
        $("#" + object.id).oneTime(200, 'calBtnShow', function() { $('#calBtnShow').click(function() { $.overview.calendar.load() }); }); 
        } 
      }) 
0

可以使用.filter()方法:

$('#Id').click().focus().filter(function() { 
    // var A = 0; 
    return (A==0); 
}).blur(); 
+0

嗯,当我试着这样我的日期选择器停止像我的模糊功能一样工作。我没有得到任何错误,它只是不执行。对不起,迟到的回复,但周末打我:=) – ThunD3eR