この質問はこのフォーラムで数回質問されましたが、私はそこにすべての提案を試みましたが、これまでのところ何も動作していません。jqueryのUIダイアログは常に左上隅に表示されます
MVCアプリケーションでは、ユーザーがクリックするリンクの近くに表示されるjquery UIダイアログがあります。だから私は次のビューを持っています:
div class="row">
<div class="col-md-4">
<h2>Link for popup</h2>
<p>
@Ajax.ActionLink("Update Status", "UpdateStatus", "Home",
new AjaxOptions
{
HttpMethod = "GET",
UpdateTargetId = "rolesPopUp",
InsertionMode = InsertionMode.Replace,
OnSuccess = "openSuccess"
})
</p>
</div>
<div class="col-md-4">
<h2>See this being updated</h2>
<p id="rolesPopUp">Col 2</p>
</div>
<div class="col-md-4 popupBase">
<h2>Web Hosting</h2>
<p id="successUpdate">Col 3</p>
</div>
</div>
これは、ダイアログをテストする唯一の目的で作成されています。基本的には、Visual Studio 2013でMVCアプリケーションを作成し、最新のjqueryに更新し、jquery UIをインストールしました。私はそれが動作するかどうかを確認するdatepickerを入れます。私は、ページの下部に次のスクリプトを持っていません。どんなに私は何をすべきか
<script src="/Scripts/jquery-3.0.0.js"></script>
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="/Scripts/jquery-ui-1.11.4.js"></script>
<script src="/Scripts/bootstrap.js"></script>
<script src="/Scripts/respond.js"></script>
<script type="text/javascript">
$.ajaxSetup({ cache: false });
$(function() {
// Activate datepicker ui. It is not shown in the view file to keep the code short.
$(".myDatePicker").datepicker();
$("#successUpdate").text("Waiting!");
$("#rolesPopUp").dialog({
autoOpen: false,
position: { my: "center", at: "center", of: ".popupBase", collision: "none" }
});
});
// openPopup function
function openSuccess() {
$("#successUpdate").text("Success!");
$("#rolesPopUp").dialog("open");
}
</script>
、ダイアログが常に画面の左上隅に表示されます。私は多くの異なる位置(画面の中心/ウィンドウ/要素、右、左など)を試して、この問題に関するいくつかの記事を読んで、衝突を追加して削除しました。位置が変わる場所を調べるためにFirebugでコードをデバッグしようとしました。 jqueryの知識が限られているため、どこに上書きされているのかわかりませんでした。実際、私はコード内でコードの位置の変化を示唆する何も表示されません。私はこれに5日間を費やしています。私は解決策の近くに方法を得ていません。私は助けてください。
ここでテスト: https://jsfiddle.net/Twisty/ddu8fygq/問題を複製できません。あなたのCSSステータスは?彼らはすべて正しくロードされていますか?スタイリングを変更するものはありますか?あなたはどんなテーマを使っていますか? – Twisty
私はすでにすべてのテーマを1つずつ削除しようとしていました。あなたのコメントは、私が正しい道にいるという考えを強めました。しかし、私が触れなかったのはjqueryバージョンだけでした。私は3.1.0を使用していました。これを1.10.2に変更すると状況が改善されます。私はすべてのテーマとスクリプトを取り除き、これを使用しています: '//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css、//code.jquery.com/jquery -1.10.2.js、// code.jquery.com/ui/1.11.4/jquery-ui.js'これにより状況は改善されますが、ダイアログは常にターゲットdivに対して中央に配置されます。私はそれを特定の位置に置くことはできません。 – Toni78
このデモでは、jQuery 1.12.4とUI 1.12.0を使用しています。 ''と ' ' – Twisty