0

選択時にブートストラップ HTML エディターに正しいテキスト値を追加するイベントがあります。問題は、選択があるたびにhtmlツールバーが追加されるため、そこにたくさんのツールバーがあることです。作成前に破棄したいのですが、方法がよくわかりません。コードは次のようになります

$('a.open_dialog').click(function(e) {
        e.preventDefault();
        var tabsDiv=$('<div />').appendTo('body').load($(this).attr('href'),function(){
        $('#tabs').tabs();
        $('select#state').live('change',function() {

            $('.textarea').empty().wysihtml5().data("wysihtml5").editor.setValue(getCustomText($('select#state').val()));

        });

        $( "#datepicker" ).datepicker();        
        })
        .dialog({

            title: $(this).attr('title'),
            modal: true,
            draggable: false,
            width: 800,
            position: 'top',
            buttons: {
                "Speichern": function() {
                    open: { $(this).addClass('b') }
                    $.ajax({
                           type: "POST",
                           url: 'action.php',
                           data: $("#edit_form").serialize(), // serializes the form's elements.
                           success: function(data)
                           {
                               alert('Der Datensatz wurde gespeichert!'); // show response from the php script.
                           },
                            error:function(){

                               alert('Es gibt ein Fehler bei Daten übetragung!');

                            }
                         });

                },
                "Email schicken": function() {

                    $.ajax({
                           type: "POST",
                           url: 'mailer.php',
                           data: $("#contactform").serialize(), // serializes the form's elements.
                           success: function(data)
                           {
                               alert('Das Email wurde geschickt!'); // show response from the php script.
                           },
                           error:function(){

                               alert('Es gibt ein Fehler bei Daten übetragung!');

                            }
                         });
                },

                "Rechnung herunterladen":function() {

                    $.ajax({
                           type: "POST",
                           url: 'docsx.php',
                           data: $("#edit_form").serialize(), // serializes the form's elements.
                           success: function(data)
                           {

                               window.location.href ='rechnung.docx'; // show response from the php script.
                           },
                           error:function(){

                               alert('Es gibt ein Fehler bei Daten übetragung!');

                            }
                         });

                    }

            },
            close: function() {
                tabsDiv.remove() // so I can reload again
                location.reload(true);
//              allFields.val( "" ).removeClass( "ui-state-error" );


            },
        });


        return false;
    }); 
4

1 に答える 1

2

これを試して

ツールバーを削除する destroy メソッドがあるかどうか、ドキュメントを参照してください。また、コンテンツを完全に削除してコンテンツを再度追加し、ツールバーを再割り当てする別のアプローチを取ることもできます。

更新しました

変更イベントがクリック イベント内にネストされているのはなぜですか。そうすると、ダイアログが開かれるたびに新しい変更イベントが関連付けられます。クリック イベントから移動してみてください。 .on() を使用したイベント

イベントのバインドを解除して割り当ててみてください..これはアンチパターンであるため、バインドを解除して何度もバインドすることは想定されていません..しかし、これが機能するかどうかを確認してください

$('select#state').unbind().live('change', function() {
          $('.textarea').empty().wysihtml5().data("wysihtml5").editor
            .setValue(getCustomText($('select#state').val()));
        });
于 2012-09-24T20:42:37.150 に答える