0

要素が非表示になっているかどうかに基づいて、いくつかの関数を呼び出そうとしています。奇妙なことに、同じコードで2つの要素に対して同様の条件が正常に機能し、1つを保存します。

私はこのようなことをしています:

  1. リンクをクリックすると、リンクが非表示になり、代替リンクが表示されます
 $('#link1').click(function() {
      $('#alt_link1').show();
      $('#link1').hide();
      $('#link2').hide();
      $('#link3').show();
  1. リンクが隠されているという知識に基づいて、私は何か他のことをします
 if ( $("#link1").is(':hidden') && $("#link2").is(':hidden') ) {
    $('#link3').click(function() {
    ..... }
 }

link1をクリックすると、link1とlink2が非表示になり、link3が表示されます。これは、Firebugで確認できるように実際に表示されますが、1つのケースでは、JQueryは条件内の非表示要素を表示および非表示として検出します。これで、同じコードファイルにある残りの2つのケースでも同様の条件が正常に機能しますが、奇妙なことに、互いには機能しません。

私はこれをさまざまな方法で試してみましたが、役に立ちませんでした。私は本当にこれで立ち往生しています。

4

2 に答える 2

0

次のシーケンスを想定し、ワン クリック バインド (1 回だけクリック) を想定すると、元のコードで実際に問題が発生することはありません。

$('#link1').one('click', function() {
      $('#alt_link1').show();
      $('#link1').hide();
      $('#link2').hide();
      $('#link3').show();
 if ( $("#link1").is(':hidden') && $("#link2").is(':hidden') ) {
    $('#link3').one('click', function() {
    ..... }
 }
});
于 2012-09-04T12:23:55.007 に答える