jquery代码工作正常,除非在colorbox中。我该怎么办?

时间:2012-07-19 22:43:23

标签: ajax jquery colorbox

我有一些代码使用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>

注意:将按钮文本设置为“搜索”并禁用按钮后,它会失败。

以下是调用colorbox的代码。

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

1 个答案:

答案 0 :(得分:0)

我找到了答案 - 非常偶然。事实证明,标签的奇怪HTML排序是罪魁祸首。

具体来说,在我加载到颜色框窗口的HTML中,我打开了一个div标签,然后打开了form标签,然后在关闭表单标签之前关闭了div标签。无论出于何种原因,当我将页面用作独立页面时,我的这种奇怪行为并没有引起任何问题。然而,它搞砸了我的一些水豚测试。在解决水豚问题时,我修复了标签订购和中提琴!页面立即开始在colorbox窗口中工作。

我从来没有猜到过。最终,我不了解造成这种奇怪行为的潜在机制,但我很高兴它得到了解决。