- 私のMVC 3アプリケーションにはリンクボタンがあり、これをクリックするとjqueryダイアログに部分的なビューがロードされます。
意見
<a class="dialogLink" href="/Home/OpenDialog">OPen Dialog</a>
部分図
<div id="dlgReport"><input type="button" id="closeDialog" value="Close"/></div>
コントローラ
public ActionResult OpenDialog(ViewModel model){
//setting value
return PartialView(model);}
Jクエリコード
$(function () {
$.ajaxSetup({ cache: false, async: false });
$('.dialogLink').live('click', function () {
var dialogId = 'uniqueName-' + Math.floor(Math.random() * 1000)
var dialogDiv = "<div id='" + dialogId + "'></div>";
var data = $('form').serialize();
$.post(this.href, data)
.success(function (result) {
$(dialogDiv).html(result).dialog({
autoOpen: true,modal: true,title: 'Test',
open: function () {
$('#closeDialog').bind('click', function (e) {
//debugger;
$(".ui-dialog-content").dialog().dialog("close");
});}});})
return false;});});
リンクボタン(ダイアログを開く)をクリックすると、ポストリクエストがコントローラーに送られ、データが入力され、データが部分ビューと部分ビューに読み込まれたカスタム「ダイアログを閉じる」ボタンに渡されます。
「ダイアログを閉じる」ボタンを最初にクリックすると、ダイアログが閉じますが、もう一度ダイアログをロードすると、「ダイアログを閉じる」が機能しません。
デバッガーで確認します。2回目は、
('#closeDialog').bind('クリック', function (e) {
呼び出されていません。ここで何が問題なのかわかりません。提案してください!ありがとう!
注 - コード " $ (".ui-dialog-content").dialog().dialog("close"); " の代わりに " $(this).dialog('close'); " を使用した場合「ダイアログを閉じる」ボタンをクリックすると、最初から不明なエラーが発生します。