我的objc_getAssociatedObject.
UITapGestureRecognizer *singleTapRecogniser = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(gestureHandler:)] autorelease];
[singleTapRecogniser setDelegate:self];
singleTapRecogniser.numberOfTouchesRequired = 1;
singleTapRecogniser.numberOfTapsRequired = 1;
[sectionHeaderView addGestureRecognizer:singleTapRecogniser];
文件中有以下代码。
functions.php
并关注wp_enqueue_script( 'broadcast-ajax-request', get_template_directory_uri() . '/js/global.js', array( 'jquery' ) );
wp_localize_script( 'broadcast-ajax-request', 'ajaxadmin', array('ajaxurl'=> admin_url( 'admin-ajax.php' )));
add_action( 'wp_ajax_get_my_option', 'get_my_option' );
add_action( 'wp_ajax_nopriv_get_my_option', 'get_my_option' );
function get_my_option()
{
print_r($_POST); exit;
}
中的代码。
global.js
但它始终会返回jQuery('document').ready(function(){
jQuery("#submit_btn").click(function(){
jQuery.ajax({
url: ajaxadmin.ajaxurl,
data: {'action':'get_my_option', 'test':'test'},
type: "POST",
success: function(response){
}
});
});
});
代码。
答案 0 :(得分:0)
脚本入队和本地化需要在wp_enqueue_scripts
动作钩子中进行:
function so_34632421_enqueue_scripts() {
wp_enqueue_script( 'broadcast-ajax-request', get_template_directory_uri() . '/js/global.js', array( 'jquery' ) );
wp_localize_script( 'broadcast-ajax-request', 'ajaxadmin', array('ajaxurl'=> admin_url( 'admin-ajax.php' )));
}
add_action('wp_enqueue_scripts', 'so_34632421_enqueue_scripts');
了解更多in the Codex。
答案 1 :(得分:0)
这绝对是一个迟到的回复,但希望它可以帮助某人。
当您本地化Wordpress管理员ajax网址时,您正在设置一个由Wordpress插入到您的网页中的变量:
/* <![CDATA[ */
var bookingajax = {"ajax_url":"http:\/\/localhost:8888\/wp-admin\/admin-ajax.php"};
/* ]]> */
当使用admin-ajax.php是插件的后端时,adminajax变量设置如下:
var ajaxurl = '/gss/wp-admin/admin-ajax.php',
检查ajax网址是否已本地化的最佳方法是将已设置的变量打印到控制台。
在我的示例中,我使用bookingajax设置了本地化的admin-ajax.php。
如果您使用console.log(bookingajax)打印此变量,您将看到它现在存储在javascript对象中。
这是解决方案!
在上面的示例中,您仍在使用adminajax变量。您需要添加在前端存储的变量中设置的下划线。
var ajaxurl = bookingajax.ajax_url;
jQuery.ajax({
url: ajaxurl,
data: {'action':'get_my_option', 'test':'test'},
type: "POST",
success: function(response){
}
});