所以我有一个像以下元素的列表:
<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>
我有一个JQuery Selector设置如下:
$(".rank").click(function(){
var url = "utilities.php?id=" + $(this).attr("user_id");
$(".rank").editable("save_url", {
loadurl: url, type: "select" });
});
现在,问题在于,无论我点击哪一个,“user_id”始终是我点击的第一个。这非常令人沮丧,我不明白为什么它会坚持下去。如果使用console.log来检查URL,则id设置正确,但是在Ajax调用中,它是我为每一个点击的第一个。
答案 0 :(得分:0)
试试这个:
$(".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" });
});
答案 1 :(得分:0)
那是因为当.editable()
被应用时,它会从它之前定义的url开始,这是你从第一个跨度构建的url。您应该从可编辑调用内部构建URL,以便始终检索所单击元素的user_id属性。
$(".rank").editable("save_url", {
loadurl: "utilities.php?id=" + $(this).attr("user_id");
type: "select"
});