在我的Ruby on Rails应用程序中,我试图阻止这样的单个表单:
$('#<%= @category.key %> .save').click(function() {
$('#<%= @category.key %> .assignment_form_new').block({ message: null });
});
然而,当我在元素上调用此函数时,它会阻止整个页面,而不是仅阻止表单。如果您愿意,我可以提供更多代码。
正如您在此图片中看到的那样,底行是一个新的分配行,这是我试图阻止的特定形式:
但是,当在此特定行上调用块函数时,它几乎会阻止整个页面:
关于可能导致这种情况的任何想法?我知道我使用的选择器是唯一的,因此它不会选择使用相同ID和类的其他东西。
进展更新1:因此,您可能会从屏幕截图中看到,我正在使用jQuery UI标签。看起来当我在新的赋值表单上调用block时,它会阻止jQuery UI Tabs,这显然会阻止它内部的所有内容。
就像演示一样,我想告诉你这不是事件冒泡的问题,因为我可以在控制台中调用该函数,它仍然会阻止jQuery UI选项卡:
进展更新2:想想我发现了这个问题。我正在使用的DIV显示为'table','table-row'和'table-cell',显然blockUI不能阻止表元素。所以我必须想办法解决这个问题。
答案 0 :(得分:0)
确保您没有使用过它。
$(document).ajaxStart($.blockUI).ajaxStop($.unblockUI);
如果不是这种情况,则可能存在事件冒泡的问题。 在这种情况下,你可以使用它:
event.stopPropagation();
希望这有帮助。
答案 1 :(得分:0)
好的,我已经明白了。永远不要尝试使用jQuery blockUI阻止表行,因为它不起作用。我采用的另一种方法是循环并阻止表格行中的每个单元格。