我有一个非常奇怪的问题!我在我的一个页面中使用了blockUI JQuery插件,它运行正常。我为另一个页面做了同样的事情,当调用$ unblockUI时,它没有解锁页面。
以下是代码:
function showCommentBox()
{
$("#commentBox").addClass("modalPopup");
alert($("#commentBox").hasClass("modalPopup"));
$.blockUI( { message: $("#commentBox") } );
}
function cancelComment()
{
alert($("#commentBox").hasClass("modalPopup"));
$.unblockUI();
}
当在cancelComment函数中评估$(“#commentBox”)。hasClass(“modalPopup”)时,不起作用的页面返回“false”,而正常工作的页面返回true。
答案 0 :(得分:2)
@Azam - 您在上面发布的代码没有任何问题。它没有理由不起作用。我直接在帖子中复制了代码并在此 jsbin page 中进行了测试。亲自看看。
为了保持尽可能简单,这就是我用于HTML主体的全部内容。
<input type="button" value="Show Comment" onclick="showCommentBox()" />
<div id="commentBox" style="display:none"><br/>
This is the text from the CommentBox Div<br/>
<input type="button" value="Cancel" onclick="cancelComment()" />
</div>
编辑:在阅读了其他一些帖子之后,我意识到问题的真正原因是你在GridView的ItemTemplate中添加了“commentBox”div。这会导致创建相同的div,并使用相同的ID乘以gridview中的行数。通常,在多个HTML元素中具有相同的ID是不好的,但这就是gridview所做的。
这是我测试过的解决方法,它有效。将您的两个功能更改为:
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()的调用就能正常工作。