注: 私が使用している jQuety のバージョンは、「.on」をサポートしていません。また、LI をクリックできるようにしたいです。
注: 追加のテストを行い、問題の UL 内でページ上のすべての Li をキャプチャすることさえしましたが、どの LI もデリゲートまたはライブが機能することを許可しません。わかりません。
基本的に、私はたくさんのリスト アイテムを持っていますが、一意の ID が割り当てられていないため、これらの LI 要素を取得する実際の方法はありません。私が試した「部分ID」で一致させることができました。
奇妙なことに、「.live」または「.delegate」を使用していないときに成功しています。たとえば、「.bind」だけを使用すると、それらを取得できます。
ODD とは: 一部の ".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
})
何かアドバイス?