1

リスト内の各項目に ajax 呼び出しが付加された単純な JQM (V 1.1.0) リストビューがあります。ユーザーがリスト項目の 1 つをタップすると、ダイアログの背後にあるページが、タップした項目で更新されます。

問題は、ユーザーがリスト項目をタップしてもダイアログが閉じないことです。ダイアログ ヘッダーで (X) [閉じる] ボタンを使用すると、ダイアログが閉じ、ダイアログの後ろのページが期待どおりに更新されます。

これが私のコードです:

$('body').on('tap', 'a.element', function(event) {

//START LOADING ANIMATION
$.mobile.showPageLoadingMsg();

//GET URL FROM MARKUP
bpm.url = $(this).attr('href');

$.get(bpm.url, 
    function(data, result) {
        if(result == 'success') {

            //STOP LOADING ANIMATION
            $.mobile.hidePageLoadingMsg();

            bpm.dataStorage = $(bpm.remoteAppDivName).html(data);


            bpm.dataStorage.trigger('create');


        }    
    },
    'html'
);

//PREVENT DEFAULT BUTTON BEHAVIOR
event.preventDefault();

});

これについて何か助けてくれてありがとう!

4

2 に答える 2

1

実際には、コード内のどこでもダイアログを閉じるように指示していません。これが、そうでない理由です。jQueryは、何らかの方法でダイアログを操作したからといって、ダイアログを閉じたいとは想定できません...

次のようなものを試してください:

$.get(bpm.url, 
    function(data, result) {
        if(result == 'success') {

            //STOP LOADING ANIMATION
            $.mobile.hidePageLoadingMsg();

            bpm.dataStorage = $(bpm.remoteAppDivName).html(data);
            bpm.dataStorage.trigger('create');

            bpm.closest('.ui-dialog').dialog('close');
        }    
    },
    'html'
);
于 2012-11-05T20:04:10.940 に答える
1

内で呼び出す必要があり$(<dialog element>).dialog('close');ますresult == 'success'

$.get(bpm.url, 
    function(data, result) {
        if(result == 'success') {

            //STOP LOADING ANIMATION
            $.mobile.hidePageLoadingMsg();

            bpm.dataStorage = $(bpm.remoteAppDivName).html(data);


            bpm.dataStorage.trigger('create');

            $('#dialogBox').dialog('close');
        }    
    },
    'html'
);
于 2012-11-05T20:02:23.153 に答える