如何在同一页面上以不同方式处理不同的日期选择器选项

发布于 2024-12-25 03:47:29 字数 468 浏览 0 评论 0原文

我在同一页面上有 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

很酷又爱笑 2025-01-01 03:47:29

我不太确定你的名字是在哪里指定的,但如果你在 .ui-datepicker-calendar 元素上有一个 name 属性,请尝试使用以下方法:

$(".ui-state-active").parents('tr').css("border", "1px solid Green");
    $(".ui-datepicker-calendar[name=datePicker1] tbody tr").live('click', function(){
       $(".ui-datepicker-calendar tbody tr:nth-child(" + ($(this).index() + 1) + ")").css("border", "1px solid Green");
    });

否则,如果你可以提供带有代码的 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:

$(".ui-state-active").parents('tr').css("border", "1px solid Green");
    $(".ui-datepicker-calendar[name=datePicker1] tbody tr").live('click', function(){
       $(".ui-datepicker-calendar tbody tr:nth-child(" + ($(this).index() + 1) + ")").css("border", "1px solid Green");
    });

Otherwise it would be great if you could provide a jsfiddle with the code.

等待我真够勒 2025-01-01 03:47:29

为日期选择器对象提供一个 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.

哎呦我呸! 2025-01-01 03:47:29

首先,您不应该使用 .live()。它占用资源并且实际上已被弃用。

这是使用委托执行此操作的好方法:

$("body").on('click', '.ui-datepicker-calendar tbody tr', function(){
       $(this).next().css("border", "1px solid Green");
 });

这里的坏处是,尽管如此,仍然没有简单的方法来区分哪个输入字段启动了日期选择器。

我要做的是将 .focus() 事件连接到日期选择器字段,并添加一个类(如果它是您想要效果的字段),否则将其删除。

像这样:

$(".datepicker").focus(function() { 
    if ($(this).attr("id") == "datePicker1") {
        $("#ui-datepicker-div").addClass("greenBorders");
    } 
    else {
        $("#ui-datepicker-div").removeClass("greenBorders");
    }
});

然后像这样更新上面的代码:

$("body").on('click', '.greenBorders ui-datepicker-calendar tbody tr', function(){
       $(this).next().css("border", "1px solid Green");
 });

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:

$("body").on('click', '.ui-datepicker-calendar tbody tr', function(){
       $(this).next().css("border", "1px solid Green");
 });

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:

$(".datepicker").focus(function() { 
    if ($(this).attr("id") == "datePicker1") {
        $("#ui-datepicker-div").addClass("greenBorders");
    } 
    else {
        $("#ui-datepicker-div").removeClass("greenBorders");
    }
});

And then update the above code like so:

$("body").on('click', '.greenBorders ui-datepicker-calendar tbody tr', function(){
       $(this).next().css("border", "1px solid Green");
 });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文