0

好吧,这很奇怪。在我的页面上,每当我在一个元素上调用 .hide() 或 .show() 时,除非我单击页面上的其他位置(任何位置),否则什么都不会发生。这种行为没有更早发生,我不确定我做了什么导致它蔓延。

我使用 jQuery 1.7.2 和 bootstrap 作为我的 css 框架(有很多修改)。该行为发生在 Chrome、Firefox 和 Safari(在 OSX 上)。我已经将 javascript 缩减为 jQuery 和我的 .hide() 调用,但它仍然会发生。控制台中没有显示错误消息。

我什至不知道如何调试这个问题。我觉得这绝对是奇怪的,谷歌搜索没有发现任何东西。我可以用开发工具或类似工具做些什么来找出 .hide() 没有按预期工作的原因吗?

我正在使用咖啡脚本。这是咖啡脚本;

$('#recipient_type').blur ->
  if $(this).val() == 'Other'
    $('#recipient-details').show()
  else
    $('#recipient-details').hide()

这是它编译成的 javascript;

$('#recipient_type').blur(function() {
      if ($(this).val() === 'Other') {
        return $('#recipient-details').show();
      } else {
        return $('#recipient-details').hide();
      }
    });

但这种现象不仅发生在我的代码中。例如,bootstrap-alert.js 警报解除脚本给了我同样的问题。

4

1 回答 1

1

您可以在执行隐藏的代码上设置断点,以查看它是否正在执行。

这是一个模糊,因此,根据定义,在您离开活动对象之前它不会执行。

于 2012-08-11T11:56:15.467 回答