2012-02-27 13 views
0

オーバーレイで表示するポップアップにAjaxフォームがあります。私はajaxを介してポップアップを提出し、Ajax呼び出しが成功した場合にオーバーレイを閉じる必要があります。ここでAsp.Net MVC/jQueryツールオーバーレイ:ajaxの戻り値でクローズする方法

は、現在、私のJSコードです:

<script type="text/javascript"> 
    $(function() { 
     // Handle form submit ... 
     $("#AddVariableForm").live("submit", function (event) { 
      event.preventDefault(); 
      var form = $(this); 
      $.validator.unobtrusive.parse('#AddVariableForm'); 
      $.ajax({ 
       url: form.attr('action'), 
       type: "POST", 
       data: form.serialize(), 
       success: function (data) { 
        if(data.Success){ 
         $("#adm-form-addVariable").data("overlay").close(); 
        } 
       }, 
       error: function (jqXhr, textStatus, errorThrown) { 
        alert("Error '" + jqXhr.status + "' (textStatus: '" + textStatus + "', errorThrown: '" + errorThrown + "')"); 
       }, 
       complete: function() { 
        alert('complete'); 
       } 
      }); 
      return false; 
     }); 
    }); 

</script> 

問題は、それが現在何を閉じていないということです。私はクロムデバッグモードで二重にチェックされていますが、それはメソッドに含まれていますが、何もしません。私はJSエラーもチェックしなかった。

私は

$("#adm-form-addVariable").overlay({ api: true }).close() 

が、同じ問題を実行しようとしました。 。( "#ADM-フォームaddVariable")オーバーレイ({API:真})

$:私はこれを行う場合は

$(".adm-btn-overlay-trigger[rel]").overlay(
     { 
      mask: { 
       color: '#111', 
       loadSpeed: 300, 
       opacity: 0.9 
      }, 

      closeOnClick: true 
     } 
    ); 

:ここ

は、私はそれを宣言する方法です。 isOpened()

不明な点があります。

私は間違っていますか?

答えて

1

私はあなたがオーバーレイ、トリガ素子に近接していない呼び出す必要があります確信している:

http://jsfiddle.net/Fwzwc/2/

$(".adm-btn-overlay-trigger[rel]").overlay().close();

あなたの場合には免責事項:私はjqueryのを使用したことがありません前のツールと同じですが、私のバイブルで見るように、動作するようです。

更新:これを複数のトリガーで動作させるには、オーバーレイを開いた正確なトリガーを見つける必要があるようです。例はhttp://jsfiddle.net/Fwzwc/3/を参照してください。

それは(近い().overlay呼び出して、オーバーレイのdivのIDを見つけ、に要約)のrel = overlayIdトリガに:。

$("img[rel='#" + overlayId + "']").overlay().close(); 
+0

、私が試したし、それが動作します。理由を理解しようとしているのですか? [rel]はプロパティのアクセサーではありませんか?それはxpath表現の権利ですか?なぜ私が以前に理解していなかったのかを説明するかもしれない。シスコ:何が素晴らしいツールjsfiddleです!!!!私は以前知りませんでした!巨大なファン:) – J4N

+1

jQueryの表現では、基本的に「rel属性を持つクラス.adm-btn-overlay-triggerの要素」と書かれています。 jqueryツールは、オーバーレイ要素自体ではなく、トリガーに関するオーバーレイに関する情報を格納しているようです。それはデザインの選択です。ところで、$( ".adm-btn-overlay-trigger [rel]")は複数の結果を返すことができるので、私の初期の解決法は複数のトリガでは機能しません。私は、動作するソリューションで自分の答えを更新しました。 –

+0

ああ、私はちょうどここに最近ここでjsfiddlerについて学んだ。確かに素晴らしいツールです! –

関連する問題