2013-05-23 4 views
1

Ну, у меня есть проект сайта администратора django, и я хочу добавить простой диалог в один из моих шаблонов change_form.django admin jQueryUI dialog

добавить следующий код:

Открыть кнопку, которая откроет диалоговое окно:

<button id='open_dialog' onclick='javascript:$("#comfirm_dialog").dialog("open");'>open</button> 

Диалог Код инициализации:

<script> 
(function($){ 
$("#comfirm_dialog").dialog({ 
    autoOpen: false, 
    height: 450, 
    width: 550, 
    modal: true, 
    buttons: { 
     "Add": function(){}, 
     Cancel: function() {$(this).dialog("close");} 
    }, 
    show: { 
     effect: "blind", 
     duration: 1000 
    }, 
    hide: { 
     effect: "explode", 
     duration: 1000 
    } 
}); 
})(django.jQuery) 

</script> 

Сам диалог:

<div id='comfirm_dialog' title='Comfirmation'> 
    This is a dialog. 
</div> 

W Курица я нажимаю кнопку «Открыть», ничего не произошло, но с одной ошибкой:

"Uncaught TypeError: Object #<Object> has no method 'dialog' " 

Я сделал некоторые исследования и выяснили, это может быть вызвано многими причинами.

Один из самых распространенных - это то, что я могу дважды включить JQuery. Однако я не думаю, что я это сделал. Я только объявляю, что использую 'django.jQuery' в теге 'script'.

Кто-нибудь знает, что может быть причиной в моем случае?

Заранее спасибо.

EDIT: Для обновления

Я пытаюсь включить «JQuery-щ», то я получил «неперехваченным ReferenceError: Jquery не определен»

Тогда я пытаюсь включить JQuery (который я думаю, что я не должны делать это в два раза, так как я использовал (django.jQuery)) И я получил ту же ошибку, что. «Uncaught TypeError: Объект # не имеет какого-либо метода" диалог»

+0

Вы указали ссылку на jquery и jquery-ui в файле? – karthikr

+0

лично? Нет. Я полагаю, что джанго сделает это для меня. Я не включаю jquery или jquery-ui в любом месте –

+0

django не сделает это за вас. Вы должны были включить 'jquery' где-нибудь, или ошибка была бы' $ 'не определена. Теперь убедитесь, что jquery-ui тоже есть – karthikr

ответ

1

Попробуйте это:

Replace

<button id='open_dialog' onclick='javascript:$("#comfirm_dialog").dialog("open");'>open</button> 

в

<button id='open_dialog'>open</button> 

и

$(function(){ 
    $('#open_dialog').click(function(){ 
     $("#comfirm_dialog").dialog('open'); 
    }); 
}) 

Кроме того, убедитесь, что вы включили jquery-ui источник в шаблоне

+0

Фактически, я использовал ваш подход. Я имею в виду метод «.click». Я перехожу к onclick, потому что хочу сделать код более простым. Кстати, он не работает в любом случае. –

+0

ok .. когда вы делаете источник просмотра, вы видите, что js-библиотека для jquery-ui включена? – karthikr

+0

Единственное, что я пытаюсь включить jquery-ui в свой шаблон: . Затем я понял, что «Uncaught ReferenceError: jQuery не определен» –

0

у меня была аналогичная проблема, и в моем случае, этот вопрос другой.

Порядок JS был другим (я знаю, что это первое, что вы проверяете, но я был почти уверен, что это было не так, но это было). Js, вызывающий диалог, вызывается до вызова библиотеки jqueryUI.

Я наследовал шаблон и использовал {{super.block}} для наследования кода из блока и шаблона. Мне пришлось переместить {{super.block}} в конце блока, который решил проблему. Js, вызывающий диалог, был объявлен в классе Media в admin.py Django. Я потратил больше часа, чтобы понять это. Надеюсь, это поможет кому-то.

Смежные вопросы