function RecommandProduct(obj, id) {
setRecommand(obj, id, 1, true);
} function UnRecommandProduct(obj, id) {
setRecommand(obj, id, 0, false);
} function setRecommand(obj, id, state, up) {
var _this = $(obj);
var recommandCountVal = parseInt(recommandCount.html());
if(!up||(recommandCountVal+1)<=MaxRecommend)
{
$.ajax({
type: "POST",
dataType: "json",
url: "/Manage/Mall/setRecommand.aspx",
data: { state: state, productId: id, __RequestVerificationToken: $("[name='__RequestVerificationToken']").val() },
success: function(data) {
if (data.state == 1) {
$("#" + id + "").attr("recommand", state);
if(up)
{
recommandCount.html(recommandCountVal+1);
_this.css('color',"red").html("取消橱窗推荐").unbind( "click" ).bind("click",function(e){ UnRecommandProduct(e.target,id); });
}
else
{
recommandCount.html(recommandCountVal-1);
_this.css("color","#0000FF").html("设为橱窗推荐").unbind( "click" ).bind("click",function(e){ RecommandProduct(e.target,id); });
}
}
else if (data.state == 3)
alert("最多只能推荐50个圣品");
else
alert('对不起,系统繁忙,请稍候再尝试');
}
});
}
else
{
if(up)
alert('最多只能推荐'+MaxRecommend+'个圣品');
}
}
//下面是元素
<a style="color:red" onclick='UnRecommandProduct(this,<%=ele.ProductId %>)' href='javascript:void(0);'>取消橱窗推荐</a>
<a style="color: #0000FF" onclick='RecommandProduct(this,<%=ele.ProductId %>)' href='javascript:void(0);'>
设为橱窗推荐</a>一开始我就设定了初始值,我想每次点击之后都变换一下他的 click 函数。。
请高手赐教
解决方案 »
- 关于insertRow后 是否能为对象添加onclick事件
- Ext中函数作为变量绑定到另一个函数的问题
- 如何实现网站当日访问量要求有详细代码!在线等。。。请高手解答。
- 为什么我在.jsp文件中导入.js文件会无显示,而在.html中却能正确显示?
- 有一定难度的setInterval相关问题(实际案例)。
- 请教问题
- 100求 《JavaScript权威指南》和《JavaScript应用程序经典实例》电子书。
- 关于DOM2中方法的使用
- 电影的“在线播放”功能是怎么做的?
- easyui 中queryParams的具体用途吗
- 请教一个JQUERY问题。。
- 关于js绑定事件解除事件的问题不解。。求高手指教
换成这样function setRecommand(obj, id, state, up) {
var _this = $(obj);
var recommandCountVal = parseInt(recommandCount.html());
if(!up||(recommandCountVal+1)<=MaxRecommend)
{
$.ajax({
type: "POST",
dataType: "json",
url: "/Manage/Mall/setRecommand.aspx",
data: { state: state, productId: id, __RequestVerificationToken: $("[name='__RequestVerificationToken']").val() },
success: function(data) {
if (data.state == 1) {
$("#" + id + "").attr("recommand", state);
if(up)
{
recommandCount.html(recommandCountVal+1);
_this.after("<a style='color:red' onclick='UnRecommandProduct(this,"+id+")' href='javascript:void(0);'>取消橱窗推荐</a>").remove();
}
else
{
recommandCount.html(recommandCountVal-1);
_this.after("<a style='color:#0000FF' onclick='RecommandProduct(this,"+id+")' href='javascript:void(0);'>设为橱窗推荐</a>").remove();
}
}
else if (data.state == 3)
alert("最多只能推荐50个圣品");
else
alert('对不起,系统繁忙,请稍候再尝试');
}
});
}
else
{
if(up)
alert('最多只能推荐'+MaxRecommend+'个圣品');
}
}
意思是,原来 要移除原来的事件函数,再绑定另外的函数
意思是,移除原来的事件函数,再绑定另外的函数
$('div').unbind('click', RecommandProduct);//取消RecommandProduct 函数
$('div').bind('click', UnRecommandProduct);//为div绑定UnRecommandProduct函数
_this.css('color',"red").html("取消橱窗推荐").unbind( "click" ).bind("click",function(e){ UnRecommandProduct(e.target,id); });
我原来就是这个样子的。
但是我一开始 显示的时候 就已经将函数写到标签里去,而没用bind()
<a style="color: #0000FF" onclick='RecommandProduct(this,<%=ele.ProductId %>)' href='javascript:void(0);'>设为橱窗推荐</a>
不要用代码绑定,用jquery的函数
如果是代码绑定的,就用$("a").removeAttr("onclick").attr("onclick", "UnRecommandProduct(this,<%=ele.ProductId %>)");
虽然没经过测试,但是是可以的。
谢谢啦,是不是用代码绑定 是不能用 unbind 的?
$('div').bind('click', RecommandProduct);//为div绑定RecommandProduct 函数
$('div').unbind('click', RecommandProduct);//取消RecommandProduct 函数