2012-02-25 31 views
1

私はJavascriptで流暢ではありませんが、このコードを変更して、曲の再生ボタンと一時停止ボタンを切り替えることができました。それはそうです:JQuery Toggle Issue、2回のクリックが必要

$(function() 
    { 
     $("#plbutton").toggle(function() 
     { 
      $("#playit").hide(); 
      $("#pauseit").show(); 
     }, 

     function() 
     { 

     }); 
    }); 

    $(function() 
    { 
     $("#pabutton").toggle(function() 
     { 
      $("#pauseit").hide(); 
      $("#playit").show(); 
     }, 

     function() 
     { 

     }); 
    }); 

これはHTMLです:

<span id="playit"><a href="javascript:void(0)" onclick="document.getElementById('WeFuckinBall').play()" id="plbutton"><img src="images/playbutton.png" /></a></span> 
    <span id="pauseit" ><a href="#" onclick="document.getElementById('WeFuckinBall').pause()" id="pabutton"><img src="images/pausebutton.png" /></a></span> 

、これは一時停止スパンのためのCSSです:今

#pauseit{ 
     display: none;} 

WHE n I再生ボタンをクリックする一時停止ボタンに切り替わり、一時停止ボタンをクリックすると再生に切り替わりますが、その後は2回のクリックが必要です...曲は停止しますが、画像は再生されますあなたがもう一度クリックまで文句を言わないあなたはトグルを必要といけない...私は周りを探してみましたが、原因のjavaとjQueryの私の最低限の知識に私は自分のコードに修正を適用することができませんでした

...

+0

なぜ2つの外部関数に名前がありませんか? – rcplusplus

+0

なぜjQueryとインラインスクリプトがありますか?インラインスクリプトをトグルに移動し、e.preventDefault()を呼び出す - ポーズボタンをクリックしてページをリロードする – mplungjan

+0

あなたがしようとしていることは非常に簡単です。一日をとり、簡単なjQueryを読むことをお勧めします。 http://www.w3schools.com/jquery/jquery_intro.asp – AlexKempton

答えて

1

リンクを使用する場合は、e.preventDefault()を追加します。

これは

<span id="playit"><img src="images/playbutton.png" /></span> 
<span id="pauseit"><img src="images/pausebutton.png" /></span> 


$(document).ready(function() { 
    $("#playit").on("click", function(e) { 
    $("#$WeFuckinBall").play() 
    $(this).hide(); 
    $("#pauseit").show(); 
    }); 
    $("#pauseit").on("click", function(e) { 
    $("#WeFuckinBall").pause() 
    $(this).hide(); 
    $("#playit").show(); 
    }); 
}); 

を動作するはずない場合もスパンを残すことができます

+0

何らかの理由で再生と一時停止ボタンを切り替えることはありません – user1232698

+0

どこにe.preventDefault()を追加しますか? btw?関数に? – user1232698

+0

nvm marioglの例であなたが何を意味しているかを見て、あなたの助けをありがとう! – user1232698

0

を切り替えます、単に.click()を使用して、あなたの問題を解決します:

$(function() 
{ 

$("#plbutton").click(function() 
{ 
     $("#playit").hide(); 
     $("#pauseit").show(); 
}); 

$("#pabutton").click(function() 
{ 
     $("#pauseit").hide(); 
     $("#playit").show(); 
} 

}); 
+0

2つのdocument.readyハンドラを使用する理由私は誰もそれを以前に見たことがない。 – Archer

+0

@Archer:私はちょうどユーザーをもう混乱させるのではなく、コードの問題のある領域を解決しています。どのように良いJavascript/Jqueryコードを書くために、私は経験によって学ぶためにユーザーにそれを残します。 – linuxeasy

+1

@Archer:うん、私はそれを受け入れ、コード内の複製を削除しました。指摘ありがとうございました:) – linuxeasy

2

はこれを試してみてください:

$(document).ready(function() { 
    $("#plbutton").on("click", function(e) 
    { 
     e.preventDefault(); 
     $("#playit").hide(); 
     $("#pauseit").show(); 
    }); 
    $("#pabutton").on("click", function(e) 
    { 
     e.preventDefault(); 
     $("#pauseit").hide(); 
     $("#playit").show(); 
    }); 
}); 
+0

私は試しましたしかしそれは機能しませんでした、それは機能の中になければなりませんか? – user1232698

+0

はい、編集してmplungjanの提案を追加しました。 – mariogl

+0

あなたはロック、ありがとうございます。 – user1232698

1

私は考えることができる最も簡単なコードがある

HTML:

<span id="playit"><img src="images/playbutton.png" /></span> 
<span id="pauseit" ><img src="images/pausebutton.png" /></span> 

JQUERY:

var elems = $("#playit,#pauseit") 
elems.on("click", function(){ 
    elems.toggle(); 
    if($(this).attr('id') == 'playit'){ 
     $('#WeFuckinBall').play(); 
    }else{ 
     $('#WeFuckinBall').pause(); 
    } 
}); 
+0

しかし、インラインonclickを残します。 – mplungjan

+0

iそれを考えるのを忘れて..ありがとう..今、その罰金を望む。 –

+0

アンカーなしでスパンをクリック可能にする方法はありますか? – user1232698

関連する問題