为什么jQuery BlockUI插件会阻塞整个页面?

为什么jQuery BlockUI插件会阻塞整个页面?,jquery,ruby-on-rails,jquery-blockui,Jquery,Ruby On Rails,Jquery Blockui,在我的Ruby on Rails应用程序中,我试图阻止一个表单,如下所示: $('#<%= @category.key %> .save').click(function() { $('#<%= @category.key %> .assignment_form_new').block({ message: null }); }); 但是,当我在元素上调用这个函数时,它会阻塞整个页面,而不仅仅是阻塞表单。如果你愿意,我可以提供更多的代码 如图所示,最下面一行是一个新

在我的Ruby on Rails应用程序中,我试图阻止一个表单,如下所示:

$('#<%= @category.key %> .save').click(function() {
  $('#<%= @category.key %> .assignment_form_new').block({ message: null });
});
但是,当我在元素上调用这个函数时,它会阻塞整个页面,而不仅仅是阻塞表单。如果你愿意,我可以提供更多的代码

如图所示,最下面一行是一个新的赋值行,这是我试图阻止的特定表单:

但是,在该特定行上调用block函数时,它几乎会阻塞整个页面:

你知道是什么导致了这一切吗?我知道我使用的选择器是唯一的,所以它不会选择使用相同ID和类的其他选择器

进度更新1:您可能会从截图中注意到,我使用的是jQueryUI选项卡。看起来,当我只在新的分配表单上调用block时,它会阻塞jQueryUI选项卡,这显然也会阻塞其中的所有内容

作为演示,我还想向您展示,这不是事件冒泡的问题,因为我可以在控制台中调用该函数,它仍然会阻止jQuery UI选项卡:


进度更新2:我想我解决了这个问题。我正在使用的div显示为“table”、“table row”和“table cell”,显然blockUI无法阻止表元素。所以我必须想办法解决这个问题

确保您没有使用过此功能

$(document).ajaxStart($.blockUI).ajaxStop($.unblockUI);
如果不是这样,则可能存在事件冒泡的问题。 在这种情况下,您可以使用:

event.stopPropagation();

希望这能有所帮助。

好的,我已经弄明白了。永远不要尝试用jQuery blockUI阻止表行,因为它不起作用。我采用的另一种方法是循环并阻塞表行中的每个单元格。

谢谢您的回答。不幸的是,我从未在代码中使用过第一条语句。另外,我不认为这是事件冒泡的问题,因为当我放置行:$'.assignment\u form\u new'.block{message:null};在我的开发者控制台中,它仍然会阻止几乎整个页面。您使用的是哪个版本的Jquery BlockUI?我使用的是2.70.0-2014.11.23版本,对我来说很好。我使用的是我从他们网站上下载的最新版本。