Как отлаживать диалог Jquery - PullRequest
0 голосов
/ 11 июля 2010

У меня довольно простой инструмент для создания диалогов для jquery, который работает в 2 из 3 мест.В 3-м случае, когда я пытаюсь его использовать, поля формы отключаются после отображения диалогового окна.

Общая концепция кода заключается в том, что форма находится на другой странице веб-сайта, идля удобства, когда включен javascript, вы можете нажать на ссылку, открыть диалоговое окно и выполнить задание «на странице».Атрибут 'rel' имеет селектор, который будет использоваться в методе jquery .load, заголовок становится заголовком диалога, страница при загрузке 'href' загружается и становится содержимым диалога.Если Javascript отключен, вы просто получаете ту же форму, но со всеми элементами верхнего / нижнего колонтитула / меню.

Как я могу выяснить, что происходит, когда отображается диалоговое окно?Firefox становится вялым (контекстное меню медленно всплывает), а поля формы отключены.Я просто в недоумении, как отладить это, чтобы выяснить, что происходит в этот момент.TAB выберет диалоговую кнопку «закрыть» и выберет поле, в котором уже есть значение, но на этом оно заканчивается.ESC все равно закроет диалог, поэтому клавиатура работает.Я нашел еще одного человека, сообщающего о подобной проблеме Ошибка CkEditor , и они, кажется, исправили ее, но я не знаю, как они это сделали.

Прежде чем я забыл: JQuery 1.4.2JQueryUI 1.8.2

URL выглядит следующим образом:

<a class='dialog' href='/messages/compose/fsm92766/' rel = ' #compose-message' title='Send Message to'>Send Message To</a>

Код установки выглядит следующим образом:

    <script lanaguage='javascript'> 
    $(document).ready(function() {
        $('a.dialog').each(function() {
            var $link = $(this);
            var $dialog = $('<div></div>')
                .dialog({
                    autoOpen: false,
                    title: $link.attr('title'),
                    modal: true,
                    resizable: false,
                    width: 'auto',
                    position: 'center'
                });

            $link.click(function() {
                var $url = $link.attr('href') + $link.attr('rel');
                $dialog.html($url + "<br/>" +"<img src='http://ender.intomec.com/static/images/loading.gif'></img>");
                $dialog.load($url)
                $dialog.dialog('open');
                return false;
            })
        })
    });
</script> 

И диалоговое окно html выглядит так:

<html>blah blah blah
<body>blah blah blah

-------------- JQuery Selector extracts this part from the page ----------------
<div id='compose-message'>
    <form action="" method="post" class="uniForm">
        <div style='display:none'>
            <input type='hidden' name='csrfmiddlewaretoken' value='3c55a464683748b20a0e6abbcd22225d' />
        </div>      
        <fieldset class="inlineLabels">
            <div id="div_id_recipient" class="ctrlHolder ">
                <label for="id_recipient">Recipient<span>*</span></label>
                <input id="id_recipient" type="text" class="commaseparateduserinput" value="fsm92766" name="recipient" />
            </div>
            <div id="div_id_subject" class="ctrlHolder ">
                <label for="id_subject">Subject<span>*</span></label>
                <input id="id_subject" type="text" class="textinput textInput" name="subject" />
            </div>
            <div id="div_id_body" class="ctrlHolder ">
                <label for="id_body">Body<span>*</span></label>
                <textarea id="id_body" rows="12" cols="55" name="body" class="textarea"></textarea>
            </div>
            <div class="form_block">
                <input type="submit" value="Send &raquo;"/>
            </div>
        </fieldset>
    </form>
</div>
----------------------------------
blah blah blah
</body>
</html>

Ответы [ 2 ]

1 голос
/ 11 июля 2010

Просто чтобы убедиться, что вы используете Firebug ?
https://addons.mozilla.org/en-US/firefox/addon/1843/

Это благо для отладки JavaScript, особенно если вы используете Firefox, у них есть 'Lite'версии для других браузеров.Насколько я знаю, это де-факто отладчик javascript.

В Firebug есть дополнение к FireQuery для улучшения отладки для jQuery https://addons.mozilla.org/en-US/firefox/addon/12632/

1 голос
/ 11 июля 2010

Расширение Firebug для Firefox отлично подходит для отладки JavaScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...