Re: [ js ] jquery live event的問題
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
討論串 (同標題文章)
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章