1

簡単な例をまとめました:

サムネイルのリストがあり、リストの画像が選択されたときに大きな画像を表示したい:

@if (Model.GalleryIcon.Any())
{
    foreach (var cell in Model.GalleryIcon)
    {  
        <a href="/Logo/MobileImage?url=@cell.TargetImagePath" data-rel="dialog" data-transition="pop" ><img src="@cell.ThumbInvPath" /></a>        
    }    
}

/Logo/MobileImage?url=@cell.TargetImagePath@Model が imagePath 文字列である部分ビューを返します。

@model string

<div id="logo-image-wrap">
      <img src='@Model' id="logo-wrap-mobile-image"/>
      <br />
      <a href="#" data-role="button" data-rel="back" data-icon="arrow-l">Back</a>
 </div>

これは、アンカーに rel="external" を設定し、新しい別のページで画像を開くだけで機能しますが、ダイアログ ボックスとしては機能しません。リストからサムネイル画像を選択すると、空のダイアログボックスに「未定義」と表示されます

リストからサムネイルが選択されているときに、ダイアログで画像の詳細を使用して部分ビューの読み込みを行うにはどうすればよいですか?

ありがとうございました。

4

3 に答える 3

2

編集 3:

私の答えを利用しようとしている人には申し訳ありません。どういうわけか、質問の「モバイル」部分全体を見逃したので、ここにある例と説明はまったく無関係でした。以前の編集のコードやその他のものを見たい場合は、回答の下にある「編集済み」リンクをクリックしてください。

OPとこの問題について話し合った後、次のようなものが機能する可能性があると考えています(ただし、知る前にテストする必要があります):

生成されたアンカーを変更して、jQuery バインディングのフックを追加します。

<ul>
...
    <li><a class="btn" href="someurl">Art</a></li>
...
</ul>

次に、これらのリンクのクリック イベントのハンドラーを追加する必要があります。

$('a.btn').on('click', function(event){
    event.preventDefault();
    var href = $(this).attr('href');
    $.mobile.changePage( href, { role: 'dialog', transition: 'slide' } );
});

jQuery Mobile フレームワークによってハイジャックされた、表示したいページにリクエストを送信します。2 番目のパラメーターは、ページに「移動」するのではなく、ダイアログとしてページを表示するようにフレームワークに指示します。

于 2012-08-07T06:54:39.293 に答える
1

動的domロードのインラインステートメントではなく、onclickイベントを介してダイアログを呼び出そうとすることができると思います。このようにして、処理中の要素ではなく、作成されたdom要素をロードする機会が得られる場合があります。onclickイベントでは、ダイアログに送信する前に.loadでdomを更新することもできます。

于 2012-08-07T07:01:18.133 に答える
0

詳細な解決策はここに掲載されています:

http://usnitch.blogspot.com/2012/08/jquery-mobile-how-to-dynamically-load.html

于 2012-08-13T18:45:03.343 に答える