2011-07-29 2 views
1

Iはリストの特定の要素を隠すために定義され、次のコードを持っている:jQueryのtoggle()はインクルードされた(PHPを使用して)コード内で動作しません。

<script type="text/javascript"> 
$(document).ready(function(){ 
    $("button").click(function(){ 
    $(".done").toggle(); 
    }); 
}); 
</script> 

基本的には、クリックされた任意<ボタン>要素は、「完了」クラスと任意の要素にトグル()関数を実行します。これは私のボタンのいくつかで動作するので、私はこの作品を知っています。私はいくつかのインクルードされたファイルで構成されたページを持っています(PHPインクルードを使用しています)。通常、javascriptはこれらのインクルードされたファイルの内部と外部で動作しますが、何らかの理由でそれらのいずれかの内部にボタンを置くと機能しません - スクリプトが定義されているドキュメントに配置されたボタンに対してのみ機能します。これはいつも事実ですか、私は間違ったことをしていますか?

答えて

2

を変更してみてください:

$("button").click(function(){ 

に:

$("button").live('click', function(){ 

これは関係なく、それらが追加されたとき、いずれかのボタンにイベントバインドを行いません。 .liveを使用している場合は、$(document).ready(ブロック内には必要ありません。.liveは、要素が追加されたときにイベントを追加します。

+0

ありがとう!これは完全に機能しました! – muttley91

+0

@rar:歓迎します:-) –

5

は、jQueryのlive functionを使用してみてください:

$("button").live('click', function(){ 
    $(".done").toggle(); 
}); 
関連する問題