JQuery BlockUI没有解锁页面

时间:2009-05-26 21:17:35

标签: jquery

我有一个非常奇怪的问题!我在我的一个页面中使用了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。

1 个答案:

答案 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()的调用就能正常工作。