2009-05-26 79 views
0

我有一個非常奇怪的問題!我在我的一個頁面中使用了blockUI JQuery插件,它工作正常。我爲另一個頁面做了同樣的事情,當$ unblockUI被調用時,它並沒有解鎖頁面。JQuery BlockUI不解除頁面

下面是代碼:

function showCommentBox() 
{  

    $("#commentBox").addClass("modalPopup"); 

    alert($("#commentBox").hasClass("modalPopup")); 

    $.blockUI({ message: $("#commentBox") });  
} 

function cancelComment() 
{  
    alert($("#commentBox").hasClass("modalPopup")); 

    $.unblockUI(); 
} 

當$( 「#commentBox」)hasClass( 「modalPopup」)中,而該cancelComment功能評估不工作返回 「假」 的頁面。工作正常的頁面返回true。

回答

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」分區。這會導致創建具有相同ID的同一個div乘以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()會正常工作。

+0

請閱讀我編輯的答案,並讓我知道它是否可以幫助你 – 2009-06-04 23:06:56