Jquery 变量被卡住,无法更改

Jquery 变量被卡住,无法更改,jquery,Jquery,我有一个元素列表,如: <span class="rank" id="someID1" user_id="1">Whatever 1</span> <span class="rank" id="someID2" user_id="2">Whatever 2</span> <span class="rank" id="someID3" user_id="3">Whatever 3</span> 现在的问题是,无论我单击哪一个

我有一个元素列表,如:

<span class="rank" id="someID1" user_id="1">Whatever 1</span>
<span class="rank" id="someID2" user_id="2">Whatever 2</span>
<span class="rank" id="someID3" user_id="3">Whatever 3</span>
现在的问题是,无论我单击哪一个,用户id始终是我单击的第一个。这很令人沮丧,我不明白为什么会卡住。如果使用console.log检查URL,则id设置正确,但在Ajax调用中,这是我为每个URL单击的第一个id。

尝试以下方法:

$(".rank").bind("click", function(){
    var $this = $(this),
        url = "utilities.php?id=" + $this.attr("user_id");
    $this.editable("save_url", { loadurl: url, type: "select" });
});
或者这个:

var $rank = $(".rank");

$rank.bind("click", function(){
    var url = "utilities.php?id=" + $(this).attr("user_id");
    $rank.editable("save_url", { loadurl: url, type: "select" });
});
这是因为当应用.editable时,它脱离了之前定义的url,即您从第一个跨度构建的url。您应该从可编辑调用内部构建url,以便始终检索所单击元素的user\u id属性

$(".rank").editable("save_url", {
    loadurl: "utilities.php?id=" + $(this).attr("user_id");
    type: "select"
});

也试过了,同样的问题。编辑:对不起,不是同一个问题,我没有定义它。我也不明白为什么在元素之外构建url会与在可编辑调用中构建url有任何不同。它仍然检索所单击元素的用户id。它实际上做得更好,因为它可以工作,当我将URL传递给editable时,它会忽略它。定义一次url,然后同时将其应用于所有3个跨距。jquery在内部运行一个循环来执行.editable查询,但由于url是在循环外部定义的,所以它在循环内部是不变的。再想一想,我的答案也行不通,因为$this在执行.editable之前被调用了一次,所以它在这个.editable函数调用中也是不变的。你可能必须咬紧牙关,在跨度上做你自己的循环。这就是我希望能够避免的我有很多这样的代码,我希望得到一个简单的答案。谢谢你的帮助。
$(".rank").editable("save_url", {
    loadurl: "utilities.php?id=" + $(this).attr("user_id");
    type: "select"
});