2009-08-20 67 views
0

可以说我有一个下拉列表,当用户与它进行交互时,我想创建“实时”。如何用jQuery填充鼠标事件的下拉列表?

例如:下拉列表中只有“附加文件”选项。当用户在下拉列表中点击/交互时,我需要它在那一刻生成它们可以附加的所有可用文件(这取决于表单的其他交互...因此,为什么我需要一个“on飞“法)。

我的问题是试图找到适当的事件作为触发器。

如果我使用的onfocus,然后IE尝试加载原始下拉列表中然后产生新的下拉列表中,导致用户基本上需要双击下拉列表与它进行交互。在FF中,这种方法没有问题。

然后我尝试切换到onMouseOver,它在IE中很好用,但在FF中没有那么多。两者的不同之处在于,IE onMouseOver只在下拉框中触发,而不在下拉列表中,在FF中触发两者(所以你试图从列表中选择一个选项并且不断重新生成列表在飞行中,这是阻止你与之互动)。

任何想法?

回答

1

您是否试过onClick?

你也应该在代码中填入一些逻辑来填充选项。如果页面上没有任何更改,则无需重新填充下拉列表。因此,如果您以某种方式存储页面的状态,则可以检查新状态是否与旧状态不同,如果是,则填写下拉列表。

+0

我试过onClick。问题在于,每次单击下拉列表中的某个项目时,都会再次调用生成下拉列表。 – 2009-08-20 15:05:57

+0

状态很难追踪,因为这些下拉列表可能有10-20个,这些下拉列表是随着用户在表单中添加更多行(每行具有此下拉列表的唯一版本)而动态创建的。每次他们在其中一个下拉列表中选择一个项目时,它会影响另一个(一个或多个)下拉列表中的项目。为了获得更好的性能,我们只更新他们正在与之交互的人(因此他们不必等待填充其他可能与之交互的下拉列表)。 – 2009-08-20 15:07:22