2013-03-06 162 views
0

以下代码适用于Chrome,Firefox和Safari,但它不适用于IE9。有人有什么主意吗?jquery无法正常工作ie

代码应该如何工作的原因是: 当鼠标位于#calendar上时,'.day'将是可点击的。如果鼠标悬停在其上,“.day”背景也会改变颜色。点击'.day'后,会弹出一个jquery-ui对话框以获取值。

在IE9中: '.day'是不可点击的。当鼠标悬停在其上时,“.day”背景颜色也不会改变。什么都没发生。

$(document).ready(function() { 

    $('#calendar').mouseout(function() { 
    $('#calendar .calendar .day').unbind('click'); 
}); 


$('#calendar').mouseover(function() {  
    $('#calendar .calendar .day').bind('click', function(){ 
     day_num = $(this).find('.day_num').html(); 
     $('#dialog-form').dialog("open"); 
    }); 
}); 


$(function() { 

    $('#dialog-form') 
     .attr('title', 'Number') 
     .dialog({ 
      autoOpen: false, 
      closeOnEscape: true, 
      draggable: false, 
      resizable: false, 
      height: 180, 
      width: 450, 
      show: 'fade', 
      modal: true, 
      buttons: { 
       'Ok': function() { 
        var spinner = $("#spinner").spinner(); 
        day_data = (spinner.spinner("value")); 

        if(day_data !=null){ 

         $.ajax({ 
          url: window.location, 
          type: 'POST', 
          data: { 
           day: day_num, 
           data: day_data 
          }, 
          success: function(msg){ 
           location.reload(); 
          } 
         }).error (function() { 
          alert('an error occured'); 
         });  
        } 
       }, 

       Cancel: function() { 
         $(this).dialog("close"); 
       } 
      } 

     }); 
} 
+0

你不需要内的另一个的document.ready功能的document.ready功能与要求 – 2013-03-06 03:59:06

回答

0

看起来#calendar1应该只是#calendar

虽然,我可以建议事件处理的这种简化吗?

$("#calendar").on("click",function(evt) { 
    day_num = $(evt.target).closest(".day").find(".day_num").html(); 
    $("#dialog-form").dialog("open"); 
}); 

这就是你需要的全部。没有一个过于复杂的东西mouseover/mouseout东西。

+0

抱歉! #calendar1应该是#calendar - 这是一个错字发布的问题。 – Lynnie 2013-03-06 04:04:22

+0

我需要过度复杂的mouseover/mouseout来区分我所拥有的多个日历。所以不幸的是仍然需要它。任何想法,为什么它不在IE上工作? – Lynnie 2013-03-06 04:06:23

0

试试这个,希望它会为你工作

$('#calendar').mouseover(function() {  
     $('#calendar1 .calendar .day').bind('click', function(){ 
      day_num = $(this).find('.day_num').html(); 
      $('#dialog-form').dialog("open"); 
     }); 
    }); 

上面的代码文件准备

<script type="text/javascript"> 

$(document).ready(function() { 

    $('#calendar').mouseout(function() { 
     $('#calendar .calendar .day').unbind('click'); 
    }); 


    $('#calendar').mouseover(function() {  
     $('#calendar1 .calendar .day').bind('click', function(){ 
      day_num = $(this).find('.day_num').html(); 
      $('#dialog-form').dialog("open"); 
     }); 
    }); 

}); 

$(function() { 

    $('#dialog-form') 
     .attr('title', 'Number') 
     .dialog({ 
      autoOpen: false, 
      closeOnEscape: true, 
      draggable: false, 
      resizable: false, 
      height: 180, 
      width: 450, 
      show: 'fade', 
      modal: true, 
      buttons: { 
       'Ok': function() { 
        var spinner = $("#spinner").spinner(); 
        day_data = (spinner.spinner("value")); 

        if(day_data !=null){ 

         $.ajax({ 
          url: window.location, 
          type: 'POST', 
          data: { 
           day: day_num, 
           data: day_data 
          }, 
          success: function(msg){ 
           location.reload(); 
          } 
         }).error (function() { 
          alert('an error occured'); 
         });  
        } 
       }, 

       Cancel: function() { 
         $(this).dialog("close"); 
       } 
      } 

     }); 
}); 

</script> 
+0

嘿Naveen谢谢你,但它仍然不工作在IE = S – Lynnie 2013-03-06 04:31:14