现在我在函数中有这段代码:
oTrack = json.played_tracks[0];
eA = $("<a/>")
.addClass("hugetile")
.attr("href","#"+0)
.appendTo(o)
.click(function(){
cont.getDetails($(this),"lastsong",18);
console.log($(this))
});
现在:我希望能够用真正的价值取代“this”。
console.log显示:Object[a.hugetile #0]
然而,简单地将“$(this)”替换为“Object [a.hugetile#0]”会导致大错误。
我需要它而没有“this”的原因是因为我希望函数能够立即执行.click函数(这样它就可以触发而无需用户点击)。但目前这是不可能的,因为我不能cont.getDetails($(this),"lastsong",18);
作为独立代码。 (这是未知的)
答案 0 :(得分:2)
只需触发点击
即可oTrack = json.played_tracks[0];
eA = $("<a/>")
.addClass("hugetile")
.attr("href","#"+0)
.appendTo(o)
.click(function(){
cont.getDetails($(this),"lastsong",18);
console.log($(this))
}).click();
调用
cont.getDetails(eA,"lastsong",18);
之后应该没有闪光灯工作。 eA
相当于点击处理程序中的$(this)
。
答案 1 :(得分:2)
立即触发点击事件将是最好的方法。但是,为了让您更好地了解事件处理程序中的this
,您还可以执行以下操作:
eA = $("<a/>")
.addClass("hugetile")
.attr("href", "#" + 0)
.appendTo(o)
.click(function () {
cont.getDetails($(this), "lastsong", 18);
console.log($(this))
});
cont.getDetails(eA, "lastsong", 18);
在事件处理程序中,this
引用您使用$("<a/>")
创建的DOM元素。但eA
也是如此。 eA
是一个包含该DOM元素的jQuery对象,因此eA
和$(this)
都是包含相同DOM元素的jQuery对象。