0

私はasp.net mvcに取り組んでいます。次のように、jqueryダイアログボックスにフォームを表示しようとしています

$("#dialog-editinvitem").dialog({
        autoOpen: false,
        width: 420,
        resizable: false,
        modal: true,
        buttons: {
            OK: function () {
               //...
            },
            Cancel: function () {
                $(this).dialog("close");
            }
        },
        close: function () {
        }
    });

それは正常に動作します。ダイアログ ボックスのボタンは、ダイアログの下部に表示されます。しかし、ダイアログのタイトルバーの後にダイアログボックスの左上隅にボタンを表示する必要があります。ボタンパネルを次のように配置するために、いくつかのjqueryコードを試しました。

var btnset = $(this).parent().children('.ui-dialog-buttonpane').html();
            $(this).parent().children('.ui-dialog-buttonpane').remove();
            $("<div class='ui-dialog-buttonpane ui-widget-content ui-helper-clearfix'>" + btnset + "</div>").insertAfter($(this).parent().children('.ui-dialog-titlebar'));
            $('.ui-dialog-buttonset').css('float', 'left');
            $('.ui-dialog-buttonpane').css('border-width', '0px 0px 1px 0px');

ボタン パネルは左上隅に正常に配置されますが、ボタン クリック イベントは発生しません。私を案内してください。

4

2 に答える 2

0

コードに問題がある場合は、dom 要素とそれに関連するイベントを削除しています。dom 要素のクローンを作成して、スタイリングを行ってください。後で終了したら、オリジナルを削除します。これをに変更

$(this).parent().children('.ui-dialog-buttonpane').remove();

これ

var objbuttonPane = $(this).parent().children('.ui-dialog-buttonpane').clone(true);
//once you done with styling and positiong the button. you do  remove the original element  and append the cloned element

または、なぜ Jquery ボタンが必要なのですか? 選択した場所に送信/リンクを配置してスタイルを設定できます。jqueryダイアログでボタンオブジェクトを渡さないでください。このようなもの 。

$("#dialog").dialog({
        autoOpen: true,
        width: 420,
        resizable: false,
        modal: true,       
        close: function () {
        }
    });

デモ: Jsfiddle

于 2013-01-22T10:37:38.590 に答える
0

以下のコード スニペットのように、ダイアログを開くときにボタン要素の位置を先頭に追加してみてください。

$('#dialog-editinvitem').dialog({
  open: function (event, ui) {
    $(this).before($(this).parent().find('.ui-dialog-buttonpane'));
  },
  ...
于 2013-12-03T09:37:08.347 に答える