Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
101
rated 0 times [  108] [ 7]  / answers: 1 / hits: 54185  / 10 Years ago, fri, may 30, 2014, 12:00:00

I wanted to find out how I can run some piece of code (attach mouseenter event) for every day after user has selected a day or changed a month/year?



I have tried to attach the event on these events




  • beforeShow

  • beforeShowDay

  • onChangeMonthYear

  • onSelect



On hover I want to highlight next day in the same row if it exists.



Currently I attach moouseenter/mouseleave event to all days after datepicker is created (which is inline).



I have simplified what I'm doing in the JS fiddle below. I need to have those events working after a date is selected and after month/year has been changed.



JS Fiddle: http://jsfiddle.net/MartinTale/Xx4GS/2/



$(div).datepicker({
changeMonth: true,
changeYear: true,
inline: true,
altField: #datep
});

$(tbody td:not(.ui-state-disabled, .active-calendar-cell)).mouseenter(function (e) {
$(this).closest('td').next().find(a).addClass(hover-calendar-cell);
console.log('test');
});

$(tbody td:not(.ui-state-disabled)).mouseleave(function (e) {
$(a.hover-calendar-cell).removeClass(hover-calendar-cell);
console.log('test out');
});


Thanks in advance.


More From » jquery

 Answers
24

Here is hacky hack.



http://jsfiddle.net/Xx4GS/3/



It works, highlights the next day( the next td in this case).



setTimeout is because I think jquery ui destroys the active date item, so we wait until we have the right one.



You might be able to use onSelect instead of .change, but not a big deal imo



I left a console.log in there so you can see a little bit of whats going on.


[#70792] Wednesday, May 28, 2014, 10 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
lucianod

Total Points: 667
Total Questions: 106
Total Answers: 92

Location: Jordan
Member since Thu, Aug 5, 2021
3 Years ago
lucianod questions
;