Firefox上的jQuery AJAX事件未定义

时间:2015-06-24 16:01:34

标签: javascript php jquery ajax

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

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()
    })
}

1 个答案:

答案 0 :(得分:0)

您的“onclick”属性应如下所示:

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

然后你的函数需要一个“event”参数:

function reloadweek(event){ 

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

使用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会确保它通过。