【发布时间】:2009-06-01 08:55:56
【问题描述】:
我正在制作一个收藏列表,您可以在其中通过 javascript 添加项目并再次删除它们。这些值存储在 cookie 中,以便在用户返回时记住该列表。我遇到的问题是从列表中删除项目的方法不会运行,除非首先有回发。我删除项目的代码如下所示:
function removeFavorite(OrderId) {
debugger;
var cookieValues = jQuery.cookie('FavoriteList');
var cookieArray = cookieValues.split(",");
for (var i = 0; i < cookieArray.length; i++) {
if (cookieArray[i] == OrderId) {
cookieArray.splice(i, 1);
}
}
jQuery('li#liFavoriteOrder_' + OrderId).remove();
jQuery.cookie('FavoriteList', cookieArray.join(","));
}
调用该方法的代码如下所示:
<a onclientclick="removeFavorite(1272331)" style="cursor: pointer;">
列表看起来像
<ul id="ulFavoriteList">
<li id="FavoriteId_1272331">
Milk
<a onclientclick="removeFavorite(1272331)" style="cursor: pointer;">
<img src="/Images/Icons/bullet_toggle_minus.png"/>
</a>
</li>
</ul>
要添加到列表的代码看起来有点像这样(短版):
jQuery('<li id=\"liFavorite_' + OrderId + '\"><a target=\"_blank\" href=\"' + url + '\">' + OrderName + '</a><a style="cursor:pointer;" onclientclick="removeFavorite(' + OrderId+ ')"><img src="/Images/Icons/bullet_toggle_minus.png" /></a></li>').appendTo('ul#ulFavoriteList');
【问题讨论】:
标签: javascript methods