如何在同一页面上以不同方式处理不同的日期选择器选项
我在同一页面上有 2 个日期选择器。一个名称为 datePicker1,另一个名称为 datePicker2。我实际上有这样的代码,
$(".ui-state-active").parents('tr').css("border", "1px solid Green");
$(".ui-datepicker-calendar tbody tr").live('click', function(){
$(".ui-datepicker-calendar tbody tr:nth-child(" + ($(this).index() + 1) + ")").css("border", "1px solid Green");
});
我想让上面的代码只适用于 datePicker1 而不是 2。实际上,问题是该代码适用于两个 datepicker。我怎样才能让它只适用于 datePicker1?
I am having 2 datepickers on the same page. One is name datePicker1 and the other datePicker2. I am actually having the code
$(".ui-state-active").parents('tr').css("border", "1px solid Green");
$(".ui-datepicker-calendar tbody tr").live('click', function(){
$(".ui-datepicker-calendar tbody tr:nth-child(" + ($(this).index() + 1) + ")").css("border", "1px solid Green");
});
I want to have the above code to work only for datePicker1 and not 2. Actually, the problem is that the code is working on both datepickers. How can I make it work for only datePicker1?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我不太确定你的名字是在哪里指定的,但如果你在 .ui-datepicker-calendar 元素上有一个 name 属性,请尝试使用以下方法:
否则,如果你可以提供带有代码的 jsfiddle ,那就太好了。
I'm not perfectly sure where your name is specified but if you got a name attribute on the .ui-datepicker-calendar element try it with this:
Otherwise it would be great if you could provide a jsfiddle with the code.
为日期选择器对象提供一个 ID 或更好的值,但为其父对象提供一个 id 并选择该特定项目而不是通用类。
Give the datepicker object an ID or better yet give its parent an id and select that specific item instead of a generic class.
首先,您不应该使用
.live()
。它占用资源并且实际上已被弃用。这是使用委托执行此操作的好方法:
这里的坏处是,尽管如此,仍然没有简单的方法来区分哪个输入字段启动了日期选择器。
我要做的是将
.focus()
事件连接到日期选择器字段,并添加一个类(如果它是您想要效果的字段),否则将其删除。像这样:
然后像这样更新上面的代码:
First and foremost, you shouldn't use
.live()
. It hogs resources and is actually deprecated.Here's a good way of doing it with a delegate:
The bad thing here is that despite this, there's no easy way to differentiate which input field started the datepicker.
What i would do is hook up a
.focus()
event to the datepicker fields, and add a class if it's the field you want the effect on, otherwise remove it.Like so:
And then update the above code like so: