2015-04-22 14 views
6

im vẫn là người mới bắt đầu với JS.Cập nhật biến jQuery trên ajax hoàn thành

Tôi sử dụng ajax để lọc nội dung bằng wordpress. Vì vậy, tôi cần phải gửi 2 biến cho PHP. Nhưng vấn đề là một khi tôi đã điều hướng thêm một trong các biến cần phải thay đổi. Trong html dữ liệu được thay đổi, nhưng jquery chạy trên (tài liệu) .ready sử dụng biến ban đầu. Làm thế nào tôi có thể làm cho biến làm mới trên ajax hoàn thành?

đây là mã của tôi

jQuery(document).ready(function($) { 
$('.tax-filter').click(function(event) { 

    if (event.preventDefault) { 
     event.preventDefault(); 
    } else { 
     event.returnValue = false; 
    } 

    var selecetd_taxonomy = $(this).attr('id'); 
    var personData = $('#content').data('id'); 


    data = { 
     action: 'filter_posts', 
     afp_nonce: afp_vars.afp_nonce, 
     taxonomy: selecetd_taxonomy, 
     person: personData, 
    }; 


    $.ajax({ 
     type: 'post', 
     dataType: 'json', 
     url: afp_vars.afp_ajax_url, 
     data: data, 
     success: function(data, textStatus, XMLHttpRequest) { 
      $('.showContent').html(data.response); 
     }, 

     error: function(MLHttpRequest, textStatus, errorThrown) { 
      $('.projects').html('Error 404'); 
     } 
    }) 
}); 
}); 

Từ chức năng khác các .data ('id') trong html được một giá trị mới, nhưng tôi cần jQuery để có được những giá trị mới là tốt

EDIT:

Tôi cần personData được cập nhật trong chức năng nhấp của tôi. Giá trị id dữ liệu của #content được cập nhật trên ajaxComplete. Nó được thực hiện bởi một hàm nhấp chuột khác nhận giá trị từ PHP.

+2

'if (event.preventDefault) {' tại sao bạn làm điều đó trong jQuery? – epascarello

+0

có thể trùng lặp của [cập nhật biến javascript với ajax trong thời gian thực] (http://stackoverflow.com/questions/9978449/update-javascript-variable-with-ajax-in-real-time) –

+0

* "Từ một hàm khác các .data ('id') trong html được một giá trị mới, nhưng tôi cần jQuery để có được giá trị mới là tốt "* Nhận giá trị ở đâu? Nó đặt id mới ở đâu? – epascarello

Trả lời

2

Cập nhật dữ liệu-id sử dụng $('#content').data('id', 'newValueHere') thay vì $('#content').attr('data-id', 'newValue')

Xem fiddle và lưu ý rằng việc thay đổi thuộc tính với .attr() không làm việc, nhưng .data() thực hiện.

+0

điều này và sửa chữa một vài lỗi chính tả đã khắc phục được sự cố của tôi! Cảm ơn –

Các vấn đề liên quan