Ajax导致选择更改的刷新 - 不知道为什么

时间:2011-11-24 11:54:40

标签: ajax jquery

我将某种配置区域放在一起,基本上菜单位于屏幕左侧,实际配置位于右侧。

单击菜单项后,将显示相应的配置屏幕。这没有问题。

我遇到的问题是,一个配置屏幕需要从数据库中提取一些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');
    })
 });

我可以看到,当“完整”被提醒时会进行更改,但之后由于某种原因全部刷新...

0 个答案:

没有答案