2012-03-14 7 views
0

Надеюсь, кто-то может мне помочь.Ajax не работает в Wordpress

Я использовал следующий учебник в качестве руководства для запуска Ajax в WordPress http://www.garyc40.com/2010/03/5-tips-for-using-ajax-in-wordpress/

У меня есть следующий код в моем файле functions.php

wp_enqueue_script('my-ajax-request','/wp-content/themes/son-of-suffusion/js/ajax.js', array('jquery')); 
// declare the URL to the file that handles the AJAX request (wp-admin/admin-ajax.php) 
wp_localize_script('my-ajax-request', 'MyAjax', array('ajaxurl' => admin_url('admin-ajax.php'))); 


/*AJAX STUFF*/ 

// this hook is fired if the current viewer is not logged in 
do_action('wp_ajax_nopriv_' . $_REQUEST['action']); 
// if logged in: 
do_action('wp_ajax_' . $_POST['action']); 


// if both logged in and not logged in users can send this AJAX request, 
// add both of these actions, otherwise add only the appropriate one 
add_action('wp_ajax_nopriv_myajax-submit', 'myajax_submit'); 
add_action('wp_ajax_myajax-submit', 'myajax_submit'); 

function myajax_submit() { 

    echo 'ajax submitted';  

    die; 

    // IMPORTANT: don't forget to "exit" 
    exit; 

} 

и этот код в моем ajax.js файле

// JavaScript Document 

jQuery(function($){ 
    $(".selected").click(function() { 

     alert("jQuery is working"); 
     $.post(MyAjax.ajaxurl, { 
    action: 'myajax-submit', 
     postID : MyAjax.postID 

    }, function(response) { 

    $("#content").html("loading..."); 
    $("#content").html(response);  


    }); 

    }); 


}) 

JQuery оповещения отображает, но код Ajax не работает и полные обновления страницы. Я делаю что-то неправильно? В моем js-коде нет ошибок, когда я использую Firebug.

Спасибо заранее

ответ

2

В функции мыши, передать событие как below.and добавить

ev.preventDefault

$(".selected").click(function (ev) { 

    //prevents default action of the element 
    ev.preventDefault(); 
    alert("jQuery is working"); 
    $.post(MyAjax.ajaxurl, { 
    action: 'myajax-submit', 
    postID : MyAjax.postID 

    }, function(response) { 

$("#content").html("loading..."); 
$("#content").html(response);  


}); 

}); 
+0

Привет DG3 спасибо за ваш ответ. Я добавил строку кода, которую вы предложили, и в первый раз, когда я нажал ссылку, я увидел короткое отображение кода ajax, но все же полная загрузка страницы, когда я повторил одно и то же действие, я не видел отображение ajax-кода. Я подозреваю, что код ajax запущен, но перезаписывается, когда содержимое страницы отображается в содержимом div. – Amara

+0

. Мне плохо, что это сработало отлично, я пропустил добавление ev к функции. Вы качаете, спасибо :) Был на этом пару дней, был готов вытащить мой ноутбук из окна. Спасибо :) – Amara

Смежные вопросы