【问题标题】:jQuery Datepicker onSelect addClassjQuery Datepicker onSelect addClass
【发布时间】:2011-07-11 20:48:14
【问题描述】:

有没有办法将一个带有 jQ​​uery 的 addClass 的类添加到 datepicker 中日期的锚元素?

例如,每次在内联 datepicker 实例上单击日期时,我希望边框为红色(此 datepicker 实例未分配给输入元素)。如果之后再次单击,颜色可以恢复为透明(或任何原始颜色)。我尝试使用 onSelect,但无法获取日期的特定锚点;所以我尝试了

$('td a.ui-state-default').live( 'click', function () {}) 

当我使用 hasClass、addClass 和 removeClass 来实现我想要的效果时,该元素显然具有类——但要么被还原/覆盖,要么根本没有链接正确的样式规则。有关如何使这种效果发挥作用的任何建议?

【问题讨论】:

  • 你想让what的边框变成红色吗?
  • 日期的边界...如果点击 2011 年 7 月 11 日,我想要 11 拥有那个 redBorder 类或任何可以在视觉上将其与其他日期区分开来的类。
  • Each one that I click needs to keep the red border until it is clicked again. So if I click on the 6th, 7th, and 8th of this month--they'll all have red borders until clicked again. – notam2774 Jul 11 '11 at 21:26 你能实现这个功能还是使用了multidatepicker?如果您成功实现了上述功能,请分享您的想法。谢谢。

标签: jquery datepicker


【解决方案1】:

您可以使用直接的 CSS 来做到这一点。

table.ui-datepicker-calendar a.ui-state-default.ui-state-active {
    border: 2px solid red;
}

演示:http://jsfiddle.net/mattball/N7wpE/

【讨论】:

  • 我点击的每一个都需要保留红色边框,直到再次点击。因此,如果我点击本月的 6 日、7 日和 8 日,它们都会有红色边框,直到再次点击。
  • @user 听起来您实际上希望能够选择多个日期:stackoverflow.com/questions/6539694/…
  • 谢谢马特!我会检查一下。
【解决方案2】:

JS

$('.ui-state-default').click(function(){
    if($(this).hasClass('red')){
        $(this).removeClass('red');
    }else{
        $(this).addClass('red');
    }
});

CSS

.red { border: 1px solid #f00; }

【讨论】:

  • 我正是这样做的,但不幸的是它没有效果。该元素仍然具有类,但它没有显示在 firebug 的 HTML 选项卡中,并且颜色属性也没有出现。
  • 或者干脆function () { $(this).toggleClass('red'); }
  • @user768459:它有课程吗?
  • 没关系,它根本没有上课。它只有在单击事件期间或处理函数正在运行时才具有该类——因此实际上并没有添加该类。
猜你喜欢
  • 2010-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-23
  • 2010-12-25
  • 2014-01-04
  • 2011-05-14
相关资源
最近更新 更多