2009-05-26 443 views
0

私は本当に奇妙な問題を抱えています!私は、私のページの一つでblockUI JQueryプラグインを使用していて、うまくいきました。別のページでも同じことをしましたが、$ unblockUIが呼び出されたときにページのブロックを解除していません。ここでJQuery BlockUI notブロックを解除する

はコードです:。

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> 

EDIT:あなたの他の記事のいくつかを読んだ後、私は問題の本当の理由は、あなたがGridViewのItemTemplateに内部「commentBox」div要素を追加しているということであることに気づきました。これにより、同じIDにgridviewの行数を掛けた同じdivが作成されます。通常、複数のHTML要素で同じIDを持つのは悪いですが、これがgridviewの機能です。

これは私がテストした回避方法です。これにあなたの二つの機能を変更します。

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

function cancelComment() {  
    alert($.currentBox.hasClass("modalPopup")); 
    $.unblockUI(); 
} 

私はcommentBox DIVへの参照を格納するためのjQuery変数を使用して渡しているその$ .blockUIに、その方法で$ .unblockUI()を呼び出します正しく動作します。

+0

私の編集した回答を読み、それがあなたに役立つかどうかお知らせください –

関連する問題