2016-09-01 5 views
-1
$("#comic").click(function(){ 
    nextPanel(comic); 
}); 

nextPanel機能をクリックしてください第二に取り組んでいます。しかし、要素は表示されません(2番目のクリックまで "display: 'none'"がデフォルトとして設定されています)。ここで何が起こっているのですか?一部のみ

+1

「漫画」オブジェクトの構造を投稿できますか?私は、comic.panelが初期化されておらず、1回目のクリックで1にインクリメントされるまで要素が一致しないと思います。 – derelict

+0

'PING'は有効なHTML要素ではないと思います(おそらく 'display:none'があなたのブラウザによって追加されます)。代わりにそれを要素の中にラップしようとしてください(例えば、 '

PING
')?とにかく、問題を再現するためにjsfiddle.netを使用し、他の人があなたの問題を理解するのを助けるためにここにリンクを投稿することをお勧めします。 –

+0

ありがとうございました!私は問題を発見した。パネルの妥当性は既に表示されたパネルを指していた。私が修正しなければならなかったのは、 "comic.panel + = 1;"上の1行私は馬鹿だ。 –

答えて

0

私はあなたがこれに変更すべきだと思う:

$("#comic").on('click',function(){ 
    nextPanel(comic); 
}); 

多分要素があなたのDOMに存在しないと、あなたが存在する前にいろいろ書いをしようと、これはあります。上に示したようにすると、正常に動作するかもしれません。これはうまく動作しません。

$("body").on('click', "#comic",function(){ 
    nextPanel(comic); 
}); 
+0

あなたの最初の提案は '$("#comic ")on( 'click'、function(){..})'はOPの '$("#comic ")と全く同じように動作します。 (){...}) '。しかし、いずれにしても、それをクリックすると 'nextPanel()'関数が呼び出されるので(*最初のクリックで「PING」メッセージが表示され、その後のクリックは期待どおりに機能するという質問があるので)、*クリックハンドラがどのようにバインドされているかではありません。 – nnnnnn

+0

それは前と同じように、私はそれが違いを生むかどうかを見て回った。私はしませんでした。 –

関連する問題