0

誰かが私を助けてくれるのではないかと思います。

このギャラリーページをまとめました。

各画像の下にあるアイコンを使用して、ユーザーは必要な画像を削除できます。画像をすぐに削除するのではなく、モーダル確認ダイアログボックスを実装しようとしているので、ユーザーは削除をキャンセルすることができます。

onlickイベントを機能させることはできますが、画像を削除するかどうかをユーザーに尋ねるテキストをクリックすると、ダイアログボックスに表示されなくなります。

ページの読み込み時にページの上部にダイアログボックスのテキストが表示されるという問題がありました。これを克服するために、私は以下を使用しました:

これを防ぐために、以下を追加してみました。

.hide{   display: none !important;   }  

<div id="dialog-confirm" class="hide" title="Delete This Image?"> 

したがって、この問題が原因である可能性が高いことはわかっていますが、両方の問題を解決する方法がわかりません。

誰かがこれを見て、どこが間違っているのか教えてくれないかと思っただけです。

よろしくお願いします

4

3 に答える 3

1

あなたのコードについては言及していませんが、問題は次のようなものだと思います。あなたのクラス " .hide" は " " を含む適切に適用されていますdisplay:none

しかし、以前のコードで、「ダイアログ確認」ボックスの「 display:block」プロパティ「インライン」を定義しました。

また、「 inline 」で定義された css 属性は、常に「 class 」で定義された属性よりも優先度が高くなります。

sodisplay:noneは " display:block" で上書きされます。

.addClass()/.removeClass()" " または "インライン"で両方の場所に属性を指定してみてください。bcoz同じような状況で私のために働いた



私もこの分野に不慣れなので、間違っている場合は他の人が私を正してください!!

于 2012-05-21T11:17:10.887 に答える
0

ダイアログ呼び出しで代わりにオプションを渡して、autoOpen: false呼び出されるまで非表示にすることができます。

$( "#dialog-confirm" ).dialog({
    autoOpen: false
});

このオプションを使用すると、ダイアログは呼び出されるまでビューから非表示にする必要があります。

また、タグ.hideの外側にクラスを配置し、ページの上部に表示しています。<style>..</style>

于 2012-05-21T12:51:10.623 に答える
0

ページ上の以下のスタイル定義を削除してください。その後、動作します:

.hide{   display: none !important;   } 

オプションでダイアログボックスを定義する必要がありautoOpen: false 、削除ボタンのクリック時に open コマンドで呼び出す必要があります (.liveコードを使用した場所)。以下のようにコードを変更してください。

  $( "#dialog-confirm" ).dialog({
                resizable: false,
                modal: true,
                autoOpen: false
                buttons: {
                    "Delete image": function() {
                    var img = $(this).closest(".galleria-image").find("img"); 
                            // send the AJAX request
                    $.ajax({
                    url : 'delete.php',
                    type : 'post',
                    data : { image : img.attr('src'),  userid: "VALUE", locationid: "VALUE"},
                    success : function(){
                    img.parent().fadeOut('slow');
                    }
                    });
                    },
                    Cancel: function() {
                        $( this ).dialog( "close" );
                    }
                }
            }); 

    $(".btn-delete").live("click", function(){      
        $( "#dialog-confirm" ).dialog( "open" );
    return false;
    });
于 2012-05-21T12:30:35.510 に答える