2

入力を受け取り、それを使用してリンクのリストをフィルタリングする jQuery 関数があります。何かが入力されると、関数は既存の UL を空にしてから、それぞれにリンクを含む新しい LI 要素を入れます。リンクは、jQuery の「クリック」メソッドで接続されています。

これらの結果のリンククリック可能ですが、ユーザーが最初に入力ボックスの外側のページのどこかをクリックした場合に限ります。リストが作成された直後にユーザーがリンクをクリックしようとしても、リンクは機能しません。

可能なヒント?代わりにリンクを右クリックして [Inspect Element] を選択すると、クリックした LIではなく、外側の UL がアクティブな要素として表示されます。最初に他の場所をクリックして要素を調べると、LIアクティブな要素です。

また、UL を空にするステップをスキップして、代わりに既存のリストに追加すると、すべてのリンクが期待どおりに機能します。

とにかく、新しいリストが入力された直後に UL が「一番上」にあるように見えるという事実は、リンクがクリックされない理由を示しているようです。したがって、問題は、なぜUL がそのように (または少なくともページ上の何かがクリックされるまで) フォーカスを受け取るのかということです。

4

2 に答える 2

0

.clickの代わりに.on(以前は.live)メソッドを使用してみてください。そうすると、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 に答える