TinyMCE в изскачащ прозорец със зареждане на jquery

Опитвам се да използвам jquery версия на последния tiny mce -TinyMCE 3.5b3 jQuery пакет, за моето текстово поле. Създавам изскачащ прозорец за зареждане на формуляра и ето го проблемът - след първото зареждане, ако щракнете отново върху същия изскачащ бутон за зареждане, ajax load ще се повреди.

Ето връзката, за да видите какво имам предвид.

Въпреки това тествах с друг ajax load без изскачащ прозорец, тогава jquery ajax просто ще работи добре.

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='/bg#' 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.


person laukok    schedule 15.04.2012    source източник


Отговори (1)


Проблемът е, че #binder-form все още е на страницата, след като затворите модала. Трябва да премахнете елемента #binder-form при модално затваряне.

Просто премахнете коментара от този ред, който е коментиран в събитието за затваряне на клик:

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

Склонен съм да избягвам да разчитам на атрибути за идентификатор на елемент в страници, които използват ajax. Наличието на два елемента с еднакъв id може да причини всякакви трудни за улавяне грешки. Придържайте се към използването на селектори на класове за това в jQuery.

[РЕДАКТИРАНЕ] Хм, не, прав си, премахваш .popup при следващо щракване и изключение го кара да прекъсне манипулатора на щракванията и да следва връзката към full.html.

Бих казал, че малкият mce хвърля грешка по някаква причина, опитайте се да го увиете в блок try catch, за да видите защо точно.

person ArtBIT    schedule 15.04.2012
comment
благодаря за отговора, try to wrap it in a try catch block to see why exactly - как да направя това? - person laukok; 15.04.2012
comment
Може да е проблем от тяхна страна, възможно е да има печатна грешка в кода. Изпратих доклад за грешка и ще видим как ще стане отива. - person ArtBIT; 16.04.2012
comment
Благодарим ви, че изпратихте доклад за грешка. Същото мисля, че това може да е грешка от тях, тъй като просто няма смисъл. - person laukok; 16.04.2012
comment
Аз също попаднах на този бъг, но не знам как да им изпратя билет - stackoverflow.com/questions/10166099/ - person laukok; 16.04.2012