Re: [ js ] jquery live event的問題

看板Ajax作者 (冷杉林)時間15年前 (2010/04/18 00:36), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/5 (看更多)
HTML大概是這樣: <div class="player"> <div class="table"> </div> <div class="hand"> <div class="card"><img scr="..." /></div> </div> </div> 目標就是點div.card時, 如果它在.hand裡,就移到.table, 反之亦然。 remove是因為要有移動的感覺, 所以某張牌被append到另一邊時, 在這邊的就要被remove掉。 ※ 引述《tomin (Schrödinger's cat)》之銘言: : ※ 引述《rexkimta (冷杉林)》之銘言: : : //var count=0; : : $('.player .card').live( 'click', function() { : : var s = $(this) : : inhand = s.parent().hasClass('hand'), : : ontable = s.parent().hasClass('table'); : : r = s.clone(); : : s.remove(); : : //count++; : : if ( inhand ) { : : $('.player .table').append(r); : : } else if ( ontable ) { : : $('.player .hand').append(r); : : } : : //alert(count); : : }); : : 我想寫一段code,能在點一下牌後, : : 如果是在table上就回到hand : : 在hand就放到table, : : 成品就如上面的code。 : : 現在問題是如果把count的註解部分拿掉, : : click一次count會alert兩次, : : 但是數字不會增加。 : : 用firebug去看的話, : : code也是會經過兩次。 : : 雖然把count的部分註解掉看起來就完全正常, : : 但是這個問題相當令人困擾…… : : 另外,要達到相同效果, : : 有沒有別的寫法比較不容易有問題的? : : 感謝大家。 : 我試不出你說的問題 都只alert 1次 : 是不是多提供點資訊呢 例如HTML長怎樣? : 無論是模仿你的寫法 (我尤其不懂為什麼要remove 移掉後就不能live click了呀) : <script type="text/javascript"> : $(function(){ : var count=0; : $("#a").live("click",function(){ : var s=$(this); : r = s.clone(); : s.remove(); : count++; : ('#b').append(r); : alert(count); : }); : }); : </script> : <div id="a">aaaa</div> : <div id="b">bbbb</div> : 或是類似的寫法 : $(function(){ : var count=0; : $("#a").live("click",function(){ : count++; : $("#a").clone().appendTo('#b'); : alert(count); : }); : }); : </script> : <div id="a">aaaa</div> : <div id="b">bbbb</div> : 看起來live, clone, remove都不會造成有兩次的問題。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.217.84
文章代碼(AID): #1BoUEHrv (Ajax)
討論串 (同標題文章)
文章代碼(AID): #1BoUEHrv (Ajax)