Drupal jQuery单击事件每次单击调用三次

Drupal jQuery单击事件每次单击调用三次,jquery,ajax,drupal,Jquery,Ajax,Drupal,我一直在试图弄清楚为什么这个jQuery脚本每次实际单击“.day available”元素都会调用click bind事件三次。这是一个更新日历旁边的日历 一切正常,但我在Firebug中看到,每个ajax url调用都执行了三次。我找到了有关使用$this.unbind之类的内容的信息,但我需要允许用户返回到他们以前单击的日历上的日期 在第一次单击和后续单击之间,呼叫数不会改变 Drupal.behaviors.uc_deliveries_now = function(context) {

我一直在试图弄清楚为什么这个jQuery脚本每次实际单击“.day available”元素都会调用click bind事件三次。这是一个更新日历旁边的日历

一切正常,但我在Firebug中看到,每个ajax url调用都执行了三次。我找到了有关使用$this.unbind之类的内容的信息,但我需要允许用户返回到他们以前单击的日历上的日期

在第一次单击和后续单击之间,呼叫数不会改变

Drupal.behaviors.uc_deliveries_now = function(context) {  
 $('.day-available').click(function(){
     $('.day-available').removeClass('selected-day');
     $(this).addClass('selected-day');

     var selected_day = $(this).html();
     var m_names = new Array("January", "February", "March","April", "May", "June", "July", "August", "September", "October", "November", "December");
     var d = new Date();
     var current_day = d.getDate();
     var current_month = d.getMonth();
     var current_year = d.getFullYear();

     if (selected_day < current_day) {
       // Move to next month
       current_month += 1;
     }

     $month_string = m_names[current_month];

     $.ajax({
       url: Drupal.settings.basePath + 'delivery_windows/' + $month_string.toLowerCase() + '/' + selected_day,
       success: function(data) {
         $('#time-selection').html(data);
       }
     });
   });
};
这是javascript文件中唯一的内容,没有其他绑定或任何其他与此冲突的内容。整个javascript文件粘贴在上面。我就是搞不懂为什么会这样

以下是日历HTML中的一行示例:

<tr>
  <td>24</td>
  <td class="day-available">25</td>
  <td>26</td>
  <td class="day-available selected-day">27</td>
  <td>28</td>
  <td class="day-available">29</td>
  <td>30</td>
</tr>
任何帮助都将不胜感激。

试试这个

 $('.day-available').unbind()

绑定前单击事件。

添加返回false;单击处理程序的末尾。

有关详细信息,请参见此处。

解除绑定没有帮助,返回false也不是我见过的大多数情况下的修复方法。试着看看如果注释掉ready函数,或者不将其绑定到div,会发生什么

只是为所有接触到这个问题的人加上这个 这听起来像是重复的

这很方便

jQuery(this,context).bind('click',function(){
  for (var property in context){
    if(property=='outerHTML'){

+这对我来说完全有效,但我想知道为什么。这是一个与Drupal相关的问题还是jQuery?我认为您缺少了部分答案。另外,试着解释一下你的代码是做什么的/它是如何做的。没有任何支持信息的代码块不太可能帮助任何人。