2

我有一个 jQuery 函数,它接受输入并使用它来过滤链接列表。当输入任何内容时,该函数会清空现有的 UL,然后用新的 LI 元素填充它,每个元素都包含一个链接。这些链接是用 jQuery 的“click”方法连接起来的。

这些生成的链接可点击的,但前提是用户首先点击了输入框之外的页面上的任何其他位置。如果用户在填充列表后立即尝试单击链接,则该链接不起作用。

可能的提示?如果我改为右键单击链接并选择“检查元素”,它会将外部 UL 显示为活动元素,而不是我单击的 LI。如果我先单击其他任何位置然后检查元素,则 LI活动元素。

此外,如果我跳过清空 UL 的步骤,而只是附加到现有列表,则所有链接都按预期工作。

无论如何,UL 似乎在新列表被填充后立即“在顶部”这一事实似乎表明了为什么链接没有被点击。因此,问题是为什么UL 会收到这样的焦点(或者至少直到页面上的某些东西——任何东西——被点击)?

4

2 回答 2

0

尝试使用.on(以前是.live)方法而不是.click,这样它会自动连接到任何添加到 DOM 的内容:

//instead of:
$('.abc').click(function() { alert('hi'); });

//use this:
$('.abc').on('click', function() { alert('hi'); });

jQuery .on()

于 2012-07-09T20:21:14.107 回答
-1

您可以模拟单击 UL 元素的父元素(在添加列表项之后),如下所示:

$("#idOfUl").parent().click();

这并不能真正解决您的问题 - 这只是一种可能的解决方法。

于 2012-07-09T20:13:06.250 回答