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()的调用将正常工作。