1

テキストエリアに、最新の小さなmceのjqueryバージョン(TinyMCE 3.5b3 jQueryパッケージ)を使用しようとしています。フォームをロードするためのポップアップを作成しましたが、これが問題です。最初のロード後に、同じロードポップアップボタンをもう一度クリックすると、ajaxloadが壊れます。

これが私が何を意味するかを見るためのリンクです。

ただし、ポップアップload なしで別のajaxを使用してテストしたところ、jqueryajaxは正常に機能します。

jquery、

$('.button-popup').click(function(){

    var object = $(this);

    // Remove any previous popup first.
    $(".popup").remove();

    // Now prepend a fresh popup.
    $(document.body).prepend("<div id='popup-edit' class='popup'></div>");

    // Load the content into the popup.
    $('#popup-edit').load('full.html', {}, function(){

        $('#binder-form').prepend("<div class='close'><a href='#' class='button-close'> x close </a></div>");   

        $('#binder-form').css({
            padding:"20px", 
            backgroundColor:"#ffffff"
        });

        $('textarea.tinymce').get_tinymce();
        $('form *[title]').inputHints();
        $('.button-submit').submit_form();

        $('.close').click(function(){
            $('.popup').fadeOut('fast',function(){
                //$(this).remove();
            });
            return false;
        });

    });

    return false;
});

$('.button').click(function(){

    $('.content').load('full.html', function() {
        $('textarea.tinymce').get_tinymce();
        $('form *[title]').inputHints();
        $('.button-submit').submit_form();

    });

    return false;
});

のプラグイン$('textarea.tinymce').get_tinymce();jsfiddleにあります。

4

1 に答える 1

1

問題は#binder-form、モーダルを閉じた後もページに残っていることです。#binder-formモーダルクローズ時に要素を削除する必要があります。

閉じるクリック イベントでコメント アウトされている行のコメントを解除するだけです。

    $('.close').click(function(){
        $('.popup').fadeOut('fast',function(){
            $(this).remove(); // this will remove the popup element
        });
        return false;
    });

私は、ajax を使用するページでは要素 ID 属性に依存することを避ける傾向があります。同じ ID を持つ 2 つの要素があると、あらゆる種類の見つけにくいバグが発生する可能性があります。jQuery では、これにクラス セレクターを使用することに固執します。

[編集] うーん、そうではありません。.popup次のクリックで を削除しています。例外により、クリック ハンドラーが壊れて へのリンクがたどられfull.htmlます。

tiny mce が何らかの理由でエラーをスローしたと思います。それを try catch ブロックでラップして、正確な理由を確認してください。

于 2012-04-15T19:12:39.167 に答える