Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在ajax中传递变量成功_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 在ajax中传递变量成功

Javascript 在ajax中传递变量成功,javascript,jquery,ajax,Javascript,Jquery,Ajax,我首先初始化外部选择器的变量以缩小代码,然后使用它创建一个函数。当我使用未初始化的选择器时,这很好,但是当我使用变量时,它就不再工作了 这是我的密码: var modalId = 'myModal', baseModal = $('#' + modalId), modalTitle = $('#' + modalId + ' .modal-title'), modalContent = $('#' + modalId + ' .modal-body'); functio

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

这是我的密码:

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请求。

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

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

我建议您使用最新版本的jQuery.ajax()查看,要为jQuery.ajax()的最终更改准备代码,请改用jqXHR.done()、jqXHR.fail()和jqXHR.always()。在前面的URL中解释。 在代码中,问题可能是在应用选择器时DOM中没有元素,需要检查BaseModel是否为空

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);

注意。

我建议您使用jQuery.ajax()的最新版本。要准备jQuery.ajax()最终更改的代码,请改用jqXHR.done()、jqXHR.fail()和jqXHR.always()。在前面的URL中解释。 在代码中,问题可能是在应用选择器时DOM中没有元素,需要检查BaseModel是否为空

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);

尊敬。

Ops抱歉,我忘了,但我已经这样做了,它仍然不起作用。控制台中有任何异常或警告吗?Ops抱歉,我忘了,但我已经这样做了,它仍然不起作用。控制台中有任何异常或警告吗?如果我没有弄错,你的意思是我需要在ajax成功中编写选择器?是的,这可能是解决方案。这取决于id为myModal的HTML元素的创建时间。如果我没有弄错的话,您的意思是我需要在ajax成功中编写选择器?是的,这可能是解决方案。这取决于id为myModal的HTML元素的创建时间。感谢关于jQuery.ajax()最新版本的通知感谢关于jQuery.ajax()最新版本的通知