【发布时间】:2020-03-28 10:04:48
【问题描述】:
我正在尝试单击按钮并获得响应。
这是按钮
$output .= '<div class="col-md-12">';
$label = __( 'More Stories', 'everstrap' );
$output .= "<button type='buttn' class='button_two load-more-btn'>{$label}</button>";
$output .= '</div>';
我如何传递ajaxob 对象:
$script_data_array = array(
'ajaxurl' => admin_url( 'admin-ajax.php' ),
'security' => wp_create_nonce( 'load_more_posts' ),
);
wp_localize_script( 'everstrap-scripts', 'ajaxobj', $script_data_array );
现在,JS文件代码如下:
window.EStrap = (function (window, document, $, undefined) {
'use strict';
var app = {
init: function () {
console.log('Working');
$(window).on('scroll', app.handleSticky);
$('.hamburger-btn').on('click', app.toggleNavDrawer);
$('.nav-drawer-close').on('click', app.closeNavDrawer);
$('.load-more-btn').on('click', app.loadMoreStories);
},
loadMoreStories:function(){
var page = 2;
var data = {
'action': 'load_posts_by_ajax',
'page': page,
'security': ajaxobj.security
};
$.post(ajaxobj.ajaxurl, data, function(response) {
if($.trim(response) !== '') {
$('.load-more-stories').append(response);
page++;
} else {
$('.load-more-btn').hide();
}
});
},
handleSticky:function () {
if ($(window).scrollTop() > 600) {
$('#main-nav').addClass('sticky-header');
} else if ($(window).scrollTop() < 300) {
$('#main-nav').removeClass('sticky-header');
}
},
toggleNavDrawer:function () {
var $nav_drawer = $('#nav-drawer');
$nav_drawer.toggleClass('open');
},
closeNavDrawer:function () {
var $nav_drawer = $('#nav-drawer');
$nav_drawer.removeClass('open');
}
};
$(document).ready(app.init);
return app;
})(window, document, jQuery);
现在,当我保存更改时,我看到来自 jshint 的以下错误
资产/js/scripts.js 17 | “安全”:ajaxobj.security ^ 'ajaxobj' 未定义。 19 | $.post(ajaxobj.ajaxurl,数据,函数(响应){ ^ 'ajaxobj' 未定义。
为什么这里无法访问ajaxobj,我该如何解决?
【问题讨论】:
标签: javascript ajax wordpress