以下是触发器和目标的总体布局。
<div id="search">
<form id="searchForm"></form>
</div>
<div class="searchResults"></div>
用户输入搜索词后,searchResults div将如下填充:
<div class="searchResults">
<ul>
<li>Result One</li>
<li>Result Two</li>
<li>Result Three</li>
</ul>
</div>
触发器设置如下:
$('#searchForm').trigger('search.categories.updated');
我创建了这个简单的脚本,当用户点击其中一个动态生成的搜索结果时,尝试触发警报:
$(document).on('search.categories.updated', function(e){
var target = $(e.target),
searchtarget = target.find('.searchResults + ul li a');
searchtarget.click(function() {
alert("yay it works!");
});
});
不幸的是,这不起作用。我认为这与searchtarget
变量不正确地定位sibiling div
有关。任何想法?
答案 0 :(得分:1)
searchtarget
变量设置不正确,是的。它应该是:
searchtarget = $('.searchResults ul li');
(在li
内搜索ul
内的.searchResults
。