注意:我正在使用的 jQuety 版本不支持“.on”。另外,我希望 LI 是可点击的。
注意:我做了一些额外的测试,甚至在页面上捕获了所有 Li,在有问题的 UL 内,没有一个 LI 将允许委托或现场工作。我不明白。
基本上我有很多列表项,并且没有真正的方法来获取这些 LI 元素,因为没有分配唯一的 id。我可以尝试匹配我尝试过的“部分 id”。
奇怪的是,我在不使用“.live”或“.delegate”时取得了成功。例如,如果我只使用“.bind”......我可以理解它们。
什么是奇数:在一些“.live”尝试中,我可以获得所有元素。但是,点击它们什么也没做。所以,我看到他们在篮子里(当我安慰他们时),但点击他们什么也没做。
我有一个这样的结构 - UL > LI 被许多 div 包围。(只是为了让您了解数据结构非常密集)。
<li id="item_111190897">
<span class="shoeColor" style="display:none">Blue Converse</span>
<span class="shoeColor">
<a class="shoepopup" data-popup-ref="#shoe_item_111190897" href="javascript:;">
<img class="available" src="/media/available.gif" alt="">
</a>
<span class="">
<img alt="" src="shoeicon.png">
</span>
Blue Converse Available Now!
</span>
基本上,有一堆这样的 LI - 并且没有可辨别的东西可以挂钩,我正在尝试以下方法:ALL DO NOT WORK!!!
$(document).delegate("li:has(.available)", "click", function(){
// do something
})
$(document).delegate("li[id^='item_']", "click", function(){
// do something
})
$(document).delegate(".available.closest('li')", "click", function(){
// do something
})
$('li:has(.available)').live("click", function(){
// do something
})
对“.live”的排列进行了更多尝试......
但是--->“.bind”有效。这行得通。
$('li:has(.available)').bind("click", function(){
// do something
})
有什么建议吗?