jQuery AJAX事件在Firefox上未定义


jQuery AJAX Event is Undefined on Firefox

此代码适用于Webkit浏览器,但不适用于Firefox。我想我需要把"event"放在括号里的某个地方,但不确定如何以及在哪里。。。?

html

<div id="calendar_nav">
       <span class="button-prev" role="button" onclick="javascript:reloadweek();" data-semana=<?php echo $weekprev; ?>>&laquo; Previous Week</span>
       <span class="button-next" role="button" onclick="javascript:reloadweek();" data-semana=<?php echo $weeknext; ?>>Next Week &raquo;</span>
</div>

jQuery

function reloadweek(){ 
    /*console.log(event.target.dataset.semana)*/
    var uploading = jQuery('div#uploading').html('<p><img width="60px" src="<?php echo get_template_directory_uri();?>/images/loading.gif"/></p>');
    jQuery('#calendar').load("<?php echo get_template_directory_uri();?>/ajaxloader.php #calendar", {
        'week': event.target.dataset.semana,
    }, function() {
        today()
    })
}

您的"onclick"属性应该如下所示:

   <span class="button-prev" role="button" onclick="reloadweek(event);" data-semana=<?php echo $weekprev; ?>>&laquo; Previous Week</span>

然后你的函数需要一个"事件"参数:

function reloadweek(event){ 

javascript:中的"onclick"处理程序值没有任何意义。

您最好使用jQuery来设置事件处理程序:

jQuery(document).on(".button-prev, .button-next", "click", function(event) {
    var uploading = jQuery('div#uploading').html('<p><img width="60px" src="<?php echo get_template_directory_uri();?>/images/loading.gif"/></p>');
    jQuery('#calendar').load("<?php echo get_template_directory_uri();?>/ajaxloader.php #calendar", {
        'week': $(this).data("semana")
    }, function() {
        today();
    });
});

处理程序中this的值将(通过jQuery)绑定到被点击的元素。然后你真的根本不需要event,尽管jQuery会确保它通过。