JQuery BlockUI无法解锁页面

我有一个非常奇怪的问题! 我在我的一个页面中使用了blockUI JQuery插件,它运行正常。 我为另一个页面做了同样的事情,当调用$ unblockUI时,它没有解锁页面。

这是代码:

function showCommentBox() { $("#commentBox").addClass("modalPopup"); alert($("#commentBox").hasClass("modalPopup")); $.blockUI( { message: $("#commentBox") } ); } function cancelComment() { alert($("#commentBox").hasClass("modalPopup")); $.unblockUI(); } 

当$(“#commentBox”)。hasClass(“modalPopup”)在cancelComment函数中计算,而正常工作的页面返回true时,不起作用的页面返回“false”。

@Azam –您在上面发布的代码没有任何问题。 它没有理由不起作用。 我直接在post中复制了代码并在此jsbin页面中进行了测试。 亲自看看吧。

为了使它尽可能简单,这就是我用于HTML主体的所有内容。

    

编辑:在阅读了其他一些post后,我意识到问题的真正原因是你在GridView的ItemTemplate中添加了“commentBox”div。 这会导致创建相同的div,并使用相同的ID乘以gridview中的行数。 通常,在多个HTML元素中具有相同的ID是不好的,但这是gridview所做的。

这是我测试过的解决方法,它的工作原理。 将您的两个function更改为:

 function showCommentBox() { $.currentBox = $("#commentBox"); $.currentBox.addClass("modalPopup"); alert($.currentBox.hasClass("modalPopup")); $.blockUI( { message: $.currentBox } ); } function cancelComment() { alert($.currentBox.hasClass("modalPopup")); $.unblockUI(); } 

这里我使用jQuery变量来存储对commentBox DIV的引用并将其传递给$ .blockUI,这样对$ .unblockUI()的调用将正常工作。