ajax内部传递变量成功



我首先初始化了外部选择器的变量,以最小化代码,然后使用它创建一个函数。当我使用未初始化的选择器时,它很好,但当我使用变量时,它不再工作。

这是我的代码:

var modalId = 'myModal',
    baseModal = $('#' + modalId),
    modalTitle = $('#' + modalId + ' .modal-title'),
    modalContent = $('#' + modalId + ' .modal-body');
function modalCont(title, content){
    modalTitle.html('');
    modalContent.html('');
    modalTitle.append( title );
    modalContent.append( content );
    baseModal.modal();
}
$(document).ready(function(){
    $(document).on('click', '.option', function(e){
        e.preventDefault();     
        var id = $(this).parents('ul').data('id'),
            process = $(this).data('process');
        var data = {
          id : id,
          process : process
        }
        $.ajax({
            type: "POST",
            url: "/ajax",
            cache: false,
            dataType: 'json',
            data: data,
            success: function( msg ) {
            [Working]
            /*
                $('#' + modalId + ' .modal-title').html('');
                $('#' + modalId + ' .modal-body').html('');
                $('#' + modalId + ' .modal-title').append( 'Current User' );
                $('#' + modalId + ' .modal-body').append( msg.html );
                $('#' + modalId).modal();
            */
            [Not Working]
            modalCont('Current User', msg.html);
            },
            error: function( response ) {
                console.log( response );
            }
        });
});
});

如果您有一些关于ajax的好的实现技术,请告诉我。因为目前我将处理许多ajax请求。

我建议您使用最新版本的jQuery.ajax()查看http://api.jquery.com/jQuery.ajax/,要为jQuery.ajax()的最终更改准备代码,请改用jqXHR.done()、jqXHR.fail()和jqXHer.always()。在上一个URL中进行了解释。在您的代码中,问题可能是在应用选择器时DOM中没有元素,您需要检查baseModal是否为空。

var modalId = 'myModal',
    baseModal = $('#' + modalId),
    console.log('baseModal = ',baseModal);
    modalTitle = $('#' + modalId + ' .modal-title'),
    console.log('modalTitle = ',modalTitle );
    modalContent = $('#' + modalId + ' .modal-body');
    console.log('modalContent = ', modalContent);

谨致问候。

初始化baseModal等时,选择器中引用的元素是否已经存在?否则,baseModal等将为空,并且它们以后不会神奇地被填充。您将需要再次执行选择器,就像工作代码一样。

相关内容

  • 没有找到相关文章

最新更新