2012-03-07 9 views
0

私のajax投稿には奇妙な動作があります。まず、クラス 'remove-link'でアンカーリンクを表示します。このリンクから、変数removeLinkObjでターゲットURLを取得します。次に、jquery UIダイアログを表示して、ユーザーに確認を求めます。それから、私はURL removeLinkObjを使ってajax呼び出しを行います。ajax投稿の前にユーザーに(jQuery経由で)確認を依頼する>>奇妙な動作

問題は、STEP1ではリンクが(例えば)../../43であり、STEP2ではリンクが../../42であるという問題です。だから前の値です!なぜ値は正しいものではないのですか?私がわかっているかどうかわからない?

私のコードの目的は、投稿する前に(jquery UIダイアログを使用して)ユーザーに確認を求めることです。

$().ready(function() { 

var removeLinkObj; 

$('.remove-link').click(function() { 
    // STEP1 
    removeLinkObj = $(this); //for future use 
    $('#confirm-remove').dialog('open'); 
    return false; // prevents the default behaviour 
}); 

$('#confirm-remove').dialog({ 
    autoOpen: false, width: 500, resizable: false, modal: true, 
    buttons: { 
     "Continue": function() { 
      // STEP2 
      $.ajax({ 
       type: "Delete", 
       url: removeLinkObj[0].href, 
       cache: false, 
       success: function (data) { 
        alert(data.TransportedMaterialId); 
        $("#" + data.TransportedMaterialId).remove(); 
       } 
      }); 
      $(this).dialog("close"); 
     }, 
     "Cancel": function() { 
      alert('User clicked Cancel'); 
      $(this).dialog("close"); 
     } 
    } 
}); 

}) 

そして、私のhtmlで:

<a href="aa/bb/44" class="remove-link">Delete</a> 

はとにかくありがとうございます。

+0

何か他のものへのhrefを、コードを変更していますか?私はちょうどあなたのコードをチェックし、うまくいきました。 http://jsfiddle.net/tseGB/ – codef0rmer

答えて

1

グローバルデータを使用する代わりに、ダイアログにパラメータを渡すことができます。 $('#confirm-remove').dialog('open') を呼び出す前に$('#confirm-remove').data('href', <get your href>); を追加し、あなたの中にあなたがHREF得ることができ、ステップ2:

$(this).data('href'); 
+0

私はとてもうまく動作します。どうもありがとうございました!! – Bronzato

関連する問題