我无法一起调用多个ajax调用。我在页面加载时调用了三个 // Prevent dropdown menu from closing on clicks inside it
var dropdown = $('.dropdown-toggle').parent();
dropdown.on('show.bs.dropdown', function() {
dropdown.data('closeable', true);
}).on('click', function(event) {
if ($(event.target).closest('.dropdown-toggle').length) {
dropdown.data('closeable', true);
} else {
dropdown.data('closeable', false);
}
}).on('hide.bs.dropdown', function(event) {
var closeable = dropdown.data('closeable');
dropdown.data('closeable', true);
return closeable;
});
$('.selection').each(function() {
var $this = $(this);
var dropdownCount = $('.dropdown-toggle').find('.' +
$this.data('id') +
'-count')
var count = $this.data('count')
$this.find('.minus').on('click', function(event) {
if (count === 0) {
//do nothing
return;
} else {
count--;
$this.data('count', count);
dropdownCount.text(count);
$this.find('.count').text(count);
}
});
$this.find('.plus').on('click', function(event) {
count++;
$this.data('count', count);
dropdownCount.text(count);
$this.find('.count').text(count);
});
});
/*--------------END--------------*/
$(document).ready(function() {
moment.locale('en', {
week: {
dow: 1
} // Monday is the first day of the week
});
//Initialize the datePicker(I have taken format as mm-dd-yyyy, you
can
//have your owh)
$("#weeklyDatePicker").datetimepicker({
format: 'DD-MM-YYYY'
});
//Get the value of Start and End of Week
$('#weeklyDatePicker').on('dp.change', function(e) {
var value = $("#weeklyDatePicker").val();
var firstDate = moment(value, "DD-MM-YYYY").day(1).format("DD-MM-
YYYY");
$("#weeklyDatePicker").val(firstDate);
});
});
函数,通过使用getXValues
更改圆顶值来设置三组值。
在这种情况下,只有一个函数在所有三个字段中执行并设置相同的值。
如果我在之前的setXValues
值中调用每个后续函数,那么一切正常,这会导致前一个函数必须通过调用setXValues
来完成。
setXValues
如果您能提供解决我问题的方法,那将会很有帮助。
注意:请注意我不能使用JQuery,因为它不属于ui组件(我讨厌它但没有选择..)
提前感谢您的帮助。
答案 0 :(得分:0)
您的问题是this
的范围和背景之一。在你的功能中:
var ajaxRequestForChange = function(url,fun) {
var strURL = url;
var xmlHttpRequest = false;
var self = this;
...
您指定var self = this;
但是函数ajaxRequestForChange
始终在全局范围内运行。所以稍后你做的时候:
if (window.XMLHttpRequest) {
self.xmlHttpRequest = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
self.xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
self.xmlHttpRequest.open("POST", strURL, true);
...
每次调用self
时都使用相同的obj ajaxRequestForChange
,并且每次都覆盖属性xmlHttpRequest
。从所有使用它的行中删除var self = this;
并删除self.
,这样可以解决您的问题。所以上面变成了:
var ajaxRequestForChange = function(url,fun) {
var strURL = url;
var xmlHttpRequest = false;
...
和
if (window.XMLHttpRequest) {
xmlHttpRequest = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlHttpRequest.open("POST", strURL, true);
...