用jQuery执行脚本后淡出div

时间:2011-08-13 07:24:49

标签: javascript jquery

使用此函数我想将数据(res_id)提交给脚本并通过它的id(使用变量pos)淡出div,执行脚本但div不会淡出。那是为什么?

$('.remove_resort').click(function() {
    pos = $(this).attr("id");
    rem_res();
});

function rem_res() {
    $.get("/snowreport/request/remove.php", {
        res_id: pos
    }, function(data1) {
        pos.fadeOut("slow");
    });
}

3 个答案:

答案 0 :(得分:1)

pos包含ID字符串,因此您需要$("#" + pos).fadeOut("slow")

答案 1 :(得分:0)

pos已超越。你应该将它作为参数传递给函数。

$('.remove_resort').click(function() {
    pos = $(this).attr("id");
    rem_res(pos);
});

function rem_res(pos) {
    $.get("/snowreport/request/remove.php", {
        res_id: pos
    }, function(data1) {
        pos.fadeOut("slow");
    });
}

答案 2 :(得分:0)

您正在存储pos = $(this).attr("id"),这是一个字符串,而不是jQuery对象。你的原始代码正在尝试调用“somestring”.fadeOut(),这将无法正常工作。如果你保留对元素的jQuery对象的引用并在其上调用fadeOut,它应该淡出。


让我们重写一下这段代码,让它完成您所追求的目标,更清洁,更明显:

$('.remove_resort').click(function() {
    rem_res(this);
});

function rem_res(element) {
    var $element = $(element),
        id = element.id;

    $.get("/snowreport/request/remove.php", { res_id: id }, function(data) {
        $element.fadeOut("slow");
    });
}