在单击页面之前,jQuery .hide()和.show()不起作用

时间:2012-08-11 11:52:24

标签: jquery

好的,这很奇怪。在我的页面上,每当我在一个元素上调用.hide()或.show()时,没有任何反应,直到我点击页面上的其他地方(任何地方)。这种行为没有发生得更早,我不确定我做了什么导致它悄悄进入。

我正在使用jQuery 1.7.2和bootstrap作为我的css框架(经过大量修改)。 Chrome,Firefox和Safari(在OSX上)会出现这种情况。除了jQuery和我的.hide()之外,我已经把javascript减少了,但它仍然会发生。控制台中没有显示错误消息。

我甚至不知道如何调试此问题。我发现它绝对奇怪,谷歌搜索没有透露任何东西。有什么我可以用开发者工具或类似的东西找出为什么.hide()没有按预期工作?

我正在使用coffeescript。这是coffeescript;

$('#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警报解雇脚本给我带来了同样的问题。

1 个答案:

答案 0 :(得分:1)

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

这是一个模糊,因此,根据定义,它将不会偏离,直到你离开活动对象。