调用函数后更改链接属性

时间:2014-12-10 20:34:17

标签: javascript jquery

在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;没有定义。

如何更新我的代码以完成我需要的工作?

1 个答案:

答案 0 :(得分:1)

您可以传递this

onclick="OnSaveOrDelete(' + item.ID + ', this)"

function OnSaveOrDelete(acID, obj) {
    //$(obj) refers to the clicked element
    $(obj).prop('data-icon','delete');
}