我将某种配置区域放在一起,基本上菜单位于屏幕左侧,实际配置位于右侧。
单击菜单项后,将显示相应的配置屏幕。这没有问题。
我遇到的问题是,一个配置屏幕需要从数据库中提取一些JSON,使用我在其他地方使用过的完美工作的脚本(尽管它不是从一个本身通过ajax调用的页面调用的) )。基本上,当更改下拉菜单时会进行JSON拉取,但我不知道为什么,但是一旦操作完成,容器就会刷新。虽然这只是出于某种原因,如果我不在被调用的页面上包含jQuery库(即使它已经存在于顶级父级中)。
如果我确实包含了库,那么由于某种原因,当我进行更改时,请求的JSON拉取3次(而不是1次)并且不会发生刷新(应该如此)。
我做错了什么吗?我已经尝试将jQuery / javascript处理包含在顶级父级中进行onchange,但是如果有的话它根本不起作用 - 即使ajax调用不使用'click'但是'live'。
要在菜单上调用配置区域,请单击:
$("#setting_choice ul li").click(function(event){
event.stopPropagation();
$("#setting_choice ul li").each(function(){
$("#setting_choice ul li").removeClass("active");
});
$(this).addClass("active");
var setting = $(this).attr('id');
$.ajax({
type: "GET",
url: "settings.php",
data: "setting="+setting,
success: function(msg){
$("#setting_action").ajaxComplete(function(event, request, settings){
event.stopPropagation();
$("#setting_action").html(msg);
});
}
});
});
用于进行JSON调用的代码(但不是所有内容,因为调用时仍然会发生这种情况) - JSON调用是成功的,因为我已经完成console.log(j);
并看到了JSON内容:
$('#country').change(function(){
alert('executed');
$.getJSON("regions.php",{id: $(this).val(), ajax: 'true'}, function(j){
var options = '';
....
$('select#county').html(options);
alert('complete');
})
});
我可以看到,当“完整”被提醒时会进行更改,但之后由于某种原因全部刷新...