0

jqueryを使用して検索結果を同じページにロードするコードがあります。スタンドアロンページで実行すると正常に動作します。カラーボックスウィンドウ内にロードすると、同じコードが途中で失敗します。どうすればこれを修正できますか?

これは、スタンドアロンページでは正常に機能するが、カラーボックスウィンドウでは失敗するコードです。

<script>
  $('button.trigger').on('click', function(){
    $mybtn = $(this);
    $mybtn.text('Searching...').addClass('disabled');
    $.post(
      '/results/people?layout="no"',
      $('#find_or_add_person').serialize(),
      function(data){
        $('#response').html(data);
        $mybtn.text('Search').removeClass('disabled').removeClass('btn-primary');
      }
    );
    return false; 
  });
</script>

注:ボタンのテキストを「検索中」に設定してボタンを無効にすると失敗します。

これがカラーボックスを呼び出すコードです。

<script>
    $('a.add').colorbox({
          width:440,
            height:400,
            onComplete: function(){
                    $('#colorbox').css('display', 'block');
              }
    });
</script>
4

1 に答える 1

0

私は答えを見つけました-かなり偶然です。タグの奇妙なHTML順序が原因であることが判明しました。

具体的には、カラーボックスウィンドウにロードしたHTMLで、divタグを開き、フォームタグを開いてから、フォームタグを閉じる前にdivタグを閉じました。何らかの理由で、ページをスタンドアロンページとして使用しているときに、私の側でのその奇妙な動作は問題を引き起こしませんでした。しかし、それは私のカピバラテストのいくつかを台無しにしていました。カピバラの問題に対処する際に、タグの順序とビオラを修正しました。すぐにページがカラーボックスウィンドウで機能し始めました。

私は決して推測しなかったでしょう。最終的には、この奇妙な動作を引き起こした根本的なメカニズムを理解していませんが、それが解決されてうれしいです。

于 2012-07-19T23:57:12.457 に答える