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()最新版本的通知