0

次のコードは、Chrome、Firefox、および Safari では機能しますが、IE9 では機能しません。誰にもアイデアはありますか?

コードの動作方法: マウスが #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");
                }
            }

        });
}
4

2 に答える 2

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>
于 2013-03-06T04:03:11.870 に答える
0

のように見え#calendar1ます#calendar

ただし、このイベント処理の簡素化を提案してもよろしいですか?

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

必要なのはこれだけです。その複雑すぎるmouseover/mouseoutものはありません。

于 2013-03-06T03:58:34.623 に答える