在多事件中通过jquery执行ajax调用?

时间:2012-04-01 22:50:32

标签: ajax jquery

我有这个简单的代码,可以使用get方法从其他php页面加载数据

$(function(){
    $("#Right").click(function(){
        $("#testid").html('<img src="theme/gfx/loading.gif">').fadeIn(400);
        $.get("modules/plugins.php",{
            count: "5"
        },function(data) {
            $('#testid').html(data);
        });
    });
    $('#block').change(function(){      
        $("#testid").html('<img src="theme/gfx/loading.gif">').fadeIn(400);
        $.get("modules/plugins.php",{
            count: $(this).attr('value')
        },function(data) {
            $('#testid').html(data);
        });
    });
});

此代码只有1个问题,加载图像仅在单击按钮时出现但在更改选择菜单时不起作用但ajax调用数据在两个事件中都没有问题 我的问题,我试图在页面加载后调用数据,因为现在它没有显示任何结果,直到我单击按钮或更改选项菜单中的选项 我试过这段代码

$(function(){
    $(document).ready(function(){
        $("#testid").html('<img src="theme/gfx/loading.gif">').fadeIn(400);
        $.get("modules/plugins.php",{
            count: "5"
        },function(data) {
            $('#testid').html(data);
        });
    });


    $("#Right").click(function(){
        $("#testid").html('<img src="theme/gfx/loading.gif">').fadeIn(400);
        $.get("modules/plugins.php",{
            count: "5"
        },function(data) {
            $('#testid').html(data);
        });
    });

    $('#block').change(function(){      
        $("#testid").html('<img src="theme/gfx/loading.gif">').fadeIn(400);
        $.get("modules/plugins.php",{
            count: $(this).attr('value')
        },function(data) {
            $('#testid').html(data);
        });
    });
});

但这并不适用 我尝试了其他的东西

$(function(){
    $.get("modules/plugins.php",{
        count: "5"
    },function(data) {
        $('#testid').html(data);
    });

    $("#Right").click(function(){
        $("#testid").html('<img src="theme/gfx/loading.gif">').fadeIn(400);
        $.get("modules/plugins.php",{
            count: "5"
        },function(data) {
            $('#testid').html(data);
        });
    });

    $('#block').change(function(){      
        $("#testid").html('<img src="theme/gfx/loading.gif">').fadeIn(400);
        $.get("modules/plugins.php",{
            count: $(this).attr('value')
        },function(data) {
             $('#testid').html(data);
        });
    });
});

两个代码都不起作用 其他两个部分仍然没有问题 页面加载时唯一的问题是没有出现结果

1 个答案:

答案 0 :(得分:2)

假设$(this)正确分配到您的下拉列表(您可以使用debug或console.log检查)它已正确分配值,您应该更改:

$(this).attr('value')

$(this).val()

如果出于任何特定原因不需要将this.value 转换为jQuery对象,则可以使用$(function(){ $("#Right").click(function(){ $("#testid").html('<img src="theme/gfx/loading.gif">').fadeIn(400); $.get("modules/plugins.php",{ count: "5" },function(data) { $('#testid').html(data); }); }); $('#block').change(function(){ $("#testid").html('<img src="theme/gfx/loading.gif">').fadeIn(400); $.get("modules/plugins.php",{ count: this.value // <---- change here },function(data) { $('#testid').html(data); }); }); });

{{1}}