在Jquery Mobile应用程序中,我有一个listview,它调用了一个单击的函数:
<a href="" onclick="OnSaveOrDelete(' + item.ID + ')" data-role="button" data-icon="star">Go home</a>
当点击上面的行链接时,它会调用此函数:
function OnSaveOrDelete(acID){
if (localStorage.Favourites.indexOf("/" + acID + "/") >= 0)
{
alert('Ac Removed #' + acID);
$(this).prop('data-icon','delete');
var tmp = localStorage.Favourites;
localStorage.Favourites = tmp.replace("/" + acID + "/", "");
}
else{
alert('New Ac Saved #' + acID);
localStorage.Favourites += "/" + acID + "/";
}
}
当现有项目不在localStorage中时,我添加它,然后需要更改icon / data-icon属性。正如我上面的代码所示,我试图通过以下方式做到这一点:
$(this).prop('data-icon','delete');
我也尝试过:
$(this).attr('data-icon','delete');
但这些都不奏效。我假设这是因为&#39; $(this)&#39;没有定义。
如何更新我的代码以完成我需要的工作?
答案 0 :(得分:1)
您可以传递this
:
onclick="OnSaveOrDelete(' + item.ID + ', this)"
function OnSaveOrDelete(acID, obj) {
//$(obj) refers to the clicked element
$(obj).prop('data-icon','delete');
}