我正在选择下拉列表。该列表将所有选定的元素(由用户完成)添加到容器中< DIV>以隐藏字段的形式。此选项具有一个链接,使用户可以选择将其从选择容器中删除。每次进行新的选择时,代码会自动绑定一个功能,该功能在用户点击REOMVE链接的情况下更改删除选择,如下所示:
< DIV id =“selectedCategories”>
类别#1 REMOVE_LINK
< input type =“hidden”value =“9524”name =“recordIds []”/>
< / DIV>
<选择>
<选项>类别#2< /选项>
<选项>类别#3< /选项>
< / select>
每次从下拉列表中进行新选择时,所有先前选择的元素都需要使用delete函数“重新绑定”。由于某种原因,有必要这样做,因为所有元素似乎都是添加新的绑定时松开以前的绑定。
这在Fire Fox和Safari中非常有效,但它们根本不适用于IE 。即使我每次为每个选定的元素重新绑定,所有绑定都会丢失,唯一有效的是我添加的最后一个元素,并使用delete函数绑定。
我的问题是: 是否存在此问题,或者如何解决此问题?不幸的是,IE是使用最广泛的互联网浏览器:(
谢谢
答案 0 :(得分:1)
您确定使用正确版本的jQuery来使用live函数吗?它相对较新,因此您需要确保使用的是最新版本。
答案 1 :(得分:0)
您可以使用live()函数绑定到页面上的每个元素实例,无论是现在还是将来。这样可以节省您重新绑定的费用。
$("a.removeLink").live("click", function() {
$(this).next("input").remove();
}
答案 2 :(得分:0)
我使用Live功能没有运气,也许我做错了。在添加或重新绑定任何其他函数之前,对我有用的是取消绑定该函数。
因此,如果我将一个函数绑定到这样的click事件。
$('#deleteRecord1').bind('click',function()
{
// function here ...
}
);
$('#deleteRecord2').bind('click',function()
{
// function here ...
}
);
稍后当我删除record1时,我需要将此方法重新绑定到record2,我将这样做以使其在IE 7和8中工作
$('#deleteRecordId').unbind('click');
$('#deleteRecordId').bind('click',function()
{
// function here ...
}
);
在这种情况下,“Id”指的是每个被选中的唯一ID,在此示例中对应于数字2.