Javascript 在日期选择器上按下箭头

Javascript 在日期选择器上按下箭头,javascript,jquery,css,datepicker,Javascript,Jquery,Css,Datepicker,我的网站上有一个日期选择器,当按下日期选择器上的任一箭头时,我试图显示一条消息。日期拾取的左箭头如下所示: <a class="ui-datepicker-prev ui-corner-all" data-handler="prev" data-event="click" title="Prev"><span class="ui-icon ui-icon-circle-triangle-w">Prev</span></a> 什么也没发生

我的网站上有一个日期选择器,当按下日期选择器上的任一箭头时,我试图显示一条消息。日期拾取的左箭头如下所示:

    <a class="ui-datepicker-prev ui-corner-all" data-handler="prev" data-event="click" title="Prev"><span class="ui-icon ui-icon-circle-triangle-w">Prev</span></a>
什么也没发生

我做错了吗?我怎样才能解决这个问题

我通过

    $('.ui-icon.ui-icon-circle-triangle-w').click(function(){
        alert('here');
    });
现在它只适用于一次单击,单击后的类是

    <a class="ui-datepicker-prev ui-corner-all" data-handler="prev" data-event="click" title="Prev"><span class="ui-icon ui-icon-circle-triangle-w">Prev</span></a>
但是我的箭头单击只工作一次,

您的.click()函数不工作的原因是,在DOM中存在所需的选择器之前调用了代码,因此无法应用任何处理程序

使用(文档)。在(“单击”、“您的选择器或此处”,function(){//do stuff})上;在动态创建/编辑的内容上。

您的.click()分配只工作一次的原因是:

每次单击箭头时,都会重新生成日期选择器内容。因此,当您指定.click()行为时,它会在加载新月份时被擦除和重写

例如,如果正在查看三月,则上一个箭头设置为加载二月。单击“上一步”按钮时,将重新加载DatePicker内容以显示二月。该按钮的onclick事件的新行为不再是加载二月,而是动态地重新分配为加载一月。因此,您为三月按钮编写的一次性按钮
.click()
分配在月份更改为其他月份后被丢弃

三月上一个按钮本质上与二月上一个按钮完全不同


假设DatePicker只是为按钮重新分配
onclick
事件,而不是从头开始重新创建按钮,则执行以下操作应添加到现有事件侦听器中,但不会覆盖它们。因此,当日期选择器
onclick
事件被覆盖时,您添加的
onclick
事件“可能”会保持不变。希望DatePicker的编写方式能够使其他
onclick
事件保持不变

而不是:

 $('.ui-icon.ui-icon-circle-triangle-w').click(function(){
        alert('here');
    });
尝试:

    $('#calendar').click(function(){
        console.log(new Date());
    }
 $('.ui-icon.ui-icon-circle-triangle-w').click(function(){
        alert('here');
    });
var prev_button = document.querySelector('.ui-icon.ui-icon-circle-triangle-w');

prev_button.addEventListener('click',function(){
   alert('Here');
},false);