Javascript脚本失败并发出警报
我有以下代码:Javascript脚本失败并发出警报,javascript,jquery,alert,Javascript,Jquery,Alert,我有以下代码: $(".zalen").change(function(){ var number = $(this).val(); $('.Zaal').load('zaal'+ number +'.html'); var storageName = "zaal" + $(".zalen").val() + '_chairs'; var chairs = localStorage.getItem(storageName);
$(".zalen").change(function(){
var number = $(this).val();
$('.Zaal').load('zaal'+ number +'.html');
var storageName = "zaal" + $(".zalen").val() + '_chairs';
var chairs = localStorage.getItem(storageName);
if(chairs == null)
{
chairs = "";
}
var chairArray = chairs.split(" ");
alert(chairArray);
$("td.chair").each(function(index){
for(var i=0; i < chairArray.length; i++)
{
if(index == chairArray[i])
{
$(this).addClass('reserved');
}
}
})
});
$(“.zalen”).change(函数(){
var number=$(this.val();
$('.Zaal').load('Zaal'+number+'.html');
var storageName=“zaal”+$(“.zalen”).val()+''u椅子';
var=localStorage.getItem(storageName);
if(chairs==null)
{
椅子=”;
}
var chairArray=chairs.split(“”);
警报(阵列);
$(“td.chair”)。每个功能(索引){
对于(var i=0;i
注意椅子分开后的警告
它与警报完美配合。但当我完成测试并删除警报时。代码停止工作,我不知道它为什么会这样做
有人能帮我解决这个问题吗
解决方案:
$(".zalen").change(function(){
var number = $(this).val();
$('.Zaal').load('zaal'+ number +'.html', function() {
var storageName = "zaal" + $(".zalen").val() + '_chairs';
var chairs = localStorage.getItem(storageName);
if(chairs == null)
{
chairs = "";
}
var chairArray = chairs.split(" ");
$("td.chair").each(function(index){
for(var i=0; i < chairArray.length; i++)
{
if(index == chairArray[i])
{
$(this).addClass('reserved');
}
}
})
});
});
$(“.zalen”).change(函数(){
var number=$(this.val();
$('.Zaal').load('Zaal'+number+'.html',function(){
var storageName=“zaal”+$(“.zalen”).val()+''u椅子';
var=localStorage.getItem(storageName);
if(chairs==null)
{
椅子=”;
}
var chairArray=chairs.split(“”);
$(“td.chair”)。每个功能(索引){
对于(var i=0;i
感谢@jbabey为您提供的解决方案。Iam非常感激jquery的函数对内容执行异步请求。您需要等到内容准备就绪后再对其进行操作。当您收到警报时,代码会暂停足够长的时间,以便加载完成。任何依赖于加载到.Zaal
中的内容的代码都应该位于加载的成功处理程序中:
$(".zalen").change(function(){
var number = $(this).val();
$('.Zaal').load('zaal'+ number +'.html', function () {
// put all of this in the complete callback
var storageName = "zaal" + $(".zalen").val() + '_chairs';
var chairs = localStorage.getItem(storageName);
if(chairs == null) {
chairs = "";
}
var chairArray = chairs.split(" ");
alert(chairArray);
$("td.chair").each(function(index){
for(var i=0; i < chairArray.length; i++) {
if(index == chairArray[i]) {
$(this).addClass('reserved');
}
}
})
});
});
$(“.zalen”).change(函数(){
var number=$(this.val();
$('.Zaal').load('Zaal'+number+'.html',函数(){
//将所有这些放在完整的回调中
var storageName=“zaal”+$(“.zalen”).val()+''u椅子';
var=localStorage.getItem(storageName);
if(chairs==null){
椅子=”;
}
var chairArray=chairs.split(“”);
警报(阵列);
$(“td.chair”)。每个功能(索引){
对于(var i=0;i
您也可以发布您的HTML吗?或者更好的是,把一个jsFiddle>www.jsFiddle.netload()
放在一起是异步的。您需要将所有代码放在它的成功回调中。@jbabey这应该是一个答案。这就是需要提醒的原因。谢谢@jbabey,我尝试了你的建议,效果很好。我非常感谢你的帮助