простой модальный конфликт с jhtmlarea - PullRequest
0 голосов
/ 31 марта 2011

всякий раз, когда я закрываю свой простой модальный диалог, jHtmlArea перестает работать.Мой код очень прост $.modal.close();

Это происходит, даже если я нажимаю кнопку закрытия в диалоге simplemodal.

Спасибо за любую помощь.

Редактировать В моем приложении используется ASP.NET MVC3 и HTML для диалогового окна, загруженного из нажатия кнопки.Это означает, что я заново создаю диалог при каждом нажатии кнопки.Может быть, я не должен этого делать.Можете ли вы предложить лучший рабочий процесс (возможно, получить сырой Json).

Я попробовал предложение Эрика вызвать richtexteditor (jhtmlarea) из onShow, но результаты те же.Я также попробовал это с другим редактором форматированного текста (ckeditor) и с теми же результатами.

полный код ниже

$(function () {
console.log("beginning ready() for issuesModal");
console.debug("calling tipTip() from ready()..");
$(".tip").tipTip({ maxWidth: "auto", edgeOffset: 10 });

var issuesModal = {
    _targetLink: null,
    _descriptionElem: null,
    _modal: null,
    _modalContainer: $('#basic-modal-content'),
    init: function () {
        console.debug("issuesModal.init()..");

        $("form.edit-issue-form, form.add-issue-form")
                 .submit(function (evt) {
                     evt.preventDefault();
                     hijackForm(this, issuesModal.formLoaded, "html");
                 });
    },
    formLoaded: function (data) {
        console.debug("issuesModal.formLoaded()..");
        issuesModal._modalContainer.html(data);
        issuesModal.doModal(issuesModal._modalContainer);
    },
    doModal: function (elem) {
        console.debug("issuesModal.doModal()..");
        if (issuesModal._modal !== null) {
            $.modal.close();
            issuesModal._modal = null;
        }
        this._modal = $(elem).modal({
            onShow: function (dialog) {
                console.debug("modal form showing..");
                this._descriptionElem = $("#Description");
                 issuesModal.doWysiwyg(this._descriptionElem);
            },
            onClose: function (dialog) {
                console.debug("modal form closing..");
                $.modal.close();
            }
        });
    },
    updateUI: function () {
        console.debug("issuesModal.updateUI()..");
        $(":input[type=submit],[type=reset]").button();

        //$("#issue-name-dropdown").css({ width: 400 }).selectmenu().next().css({ height: 50 })

        $(":input[type=reset]")
        .unbind('click')
        .click(
            function (evt) {
                console.debug("modal form close button clicked..");
                evt.preventDefault();

                $.modal.close();
            }
            );

    },
    doWysiwyg: function (elem) {
        console.debug("issuesModal.doWysiwyg()..");
        $(elem).htmlarea();

    }

};
issuesModal.init();
issuesModal.updateUI();

});

1 Ответ

0 голосов
/ 31 марта 2011

Вы не предоставили никакого кода, поэтому я могу только догадываться о решении ...

С учетом того, как работает SimpleModal, я предлагаю инициализировать любые сторонние библиотеки в обратном вызове onShow.

$('#element').modal({
    onShow: function (d) {
        $('textarea', d.data[0]).jHtmlArea(); // general idea, actual syntax may vary
    }
});

HTH

...