如何更改元素的点击装订? Html片段是:
<div id="Selected">
<ul>
<li>element 01<a class="element01-selected">-</a></li>
<li>element 02<a class="element02-selected">-</a></li>
<li>element 03<a class="element03-selected">-</a></li>
</ul>
</div>
<div id="UnSelected">
<ul>
<li>element 01<a class="element01-unselected">+</a></li>
<li>element 02<a class="element02-unselected">+</a></li>
<li>element 03<a class="element03-unselected">+</a></li>
<li>element 04<a class="element04-unselected">+</a></li>
<li>element 05<a class="element05-unselected">+</a></li>
</ul>
</div>
目前,我初始化这样的绑定:
<script type="text/javascript" language="javascript">
$("#Selected ul li a").click(
function()
{
// do stuffs
return false;
}
);
$("#UnSelected ul li a").click(
function ()
{
var li = $(this).parent();
$clone = li.clone(false);
$clone.children().text("-");
$("#Selected ul").append($clone);
return false;
}
);
</script>
元素被复制到第一个列表但单击绑定仍然存在,我希望单击该项目切换到另一个绑定:
由于
答案 0 :(得分:0)
使用unbind方法取消绑定附加到它的任何事件。
e.g
$clone.unbind('click');
答案 1 :(得分:0)
$("#elementId").unbind('click');
在您的代码中,您可以使用此类似的内容 -
$("#UnSelected ul li a").click(
function () {
$(this).unbind('click');
var li = $(this).parent();
$clone = li.clone(false);
$clone.children().text("-");
$("#Selected ul").append($clone);
return false; } );
答案 2 :(得分:0)
使用委托附加事件。这样,如果你向它添加任何新元素,它将触发同样的事件。
$("#Selected").delegate("ul li a", "click", function()
{
// do stuffs
return false;
}
);
$("#UnSelected").delegate("ul li a", "click", function ()
{
var li = $(this).parent();
$clone = li.clone(false);
$clone.children().text("-");
$("#Selected ul").append($clone);
return false;
}
);
答案 3 :(得分:0)
据我所知,unbind
仅在您之前bind
点击时才有效。
$("#Selected ul li a").bind('click',
function( //do stuff )
);
$("#UnSelected ul li a").unbind('click',
function ( //do stuff )
);