$(...).dialog не является функцией: невозможно отследить источник ошибки jQuery ⇐ Jquery
-
Гость
$(...).dialog не является функцией: невозможно отследить источник ошибки jQuery
Некоторое время назад я написал код, отображающий частичное представление в виде всплывающего окна. В том старом случае я написал HTML и JavaScript с нуля, и это сработало.
Для этого я использую «диалог».
$('#UserChangePassword').dialog({ zИндекс: 9998, модальное: правда, перетаскиваемый: правда, изменяемый размер: ложь, позиция: ['центр', 'центр'], показать: «слепой», скрыть: «слепой», ширина: «авто», высота: «авто», диалогкласс: 'ui-dialog-osx', открыть: функция (событие, пользовательский интерфейс) { $("span.ui-dialog-title").dir = "rtl"; $("span.ui-dialog-title").text("משתמש פורטל") //если (обратный вызов!= не определено) { // перезвонить() //} }, закрыть: функция () { } }); } Однако теперь, когда я пытаюсь добавить ту же функцию (всплывающее окно) в существующий код, написанный ранее кем-то другим, я получаю сообщение об ошибке «$(...).dialog не является функцией».< /п> Я уже пытался провести некоторое исследование по этому поводу. Насколько я понимаю, это может быть вызвано либо тем, что jQuery вообще не загружен, либо jQuery загружен более одного раза.
HTML из кода, который работает — в главном окне есть следующее:
src = "/Scripts/old_script.js" @section ClientScripts{ [*] @(Html.Telerik().ScriptRegistrar().Globalization(true).Scripts(group => group.AddSharedGroup("SharedScripts") .AddSharedGroup("TelerikScripts") .AddSharedGroup("Сценарии счетов"))) } html идет сюда @Html.Partial("ИзменитьПароль") HTML из работающего кода – частичное представление: (да, он тоже использует Telerik, и это работает)
@section ClientScripts { @(Html.Telerik().ScriptRegistrar().Globalization(true).Scripts(group => group.AddSharedGroup("SharedScripts") .AddSharedGroup("TelerikScripts") .AddSharedGroup("TerminalWorkstationScripts"))) } htmll идет сюда Главное окно, куда я хочу это добавить:
@section ClientScripts { @(Html.Telerik().ScriptRegistrar().Globalization(true).Scripts(group => group.AddSharedGroup("SharedScripts") .AddSharedGroup("TelerikScripts") .AddSharedGroup("WorkstationScripts"))) } И отдельно от него:
@(Html.Telerik().ScriptRegistrar().jQuery(false).OnDocumentReady(@"twCreatePopup.init();twCreatePopup.whenPopupEnter();")) Похоже, что тот, кто работал над этим до меня, имел свой собственный способ отображения всплывающих окон, отсюда и эти функции. Я предпочитаю НЕ трогать его часть, просто чтобы мой код работал вместе с его.
Может ли быть причина в том, что здесь скрипты Телерика загружаются/обращаются дважды? Может их можно объединить в одну команду?
Что я пробовал:
Добавление блока Telerik в html частичного окна, пробовал с ним и без - без изменений
[*]
Попробовал скопировать весь блок ClientScripts из старого главного окна в новое, попробовал закомментировать/снять комментарии части строк - без изменений
[*]
Отключение одного из объявлений сценария Telerik в html нового окна – очевидно, это вызывает проблемы с существующим кодом
[*]
Пытался вызвать саму функцию в JavaScript двумя способами:
$('#Button').click(function () { alert(document.getElementById('ConfirmCode').dialog); $('#ConfirmCode').dialog.dialog('open'); } И вот так:
$(функция () { $("#ConfirmCode").dialog( { автооткрытие: ложь }); $("#Button").click(function () { предупреждение(1); $("#ConfirmCode").dialog('open'); }); }); Ошибка все еще существует.
[*]Использование «$.noConflict()»
Здесь результаты были самыми странными. Я пробовал использовать их в обеих версиях функций: перед именем функции или внутри нее, перед командой «открыть диалог». Он по-прежнему не показывает всплывающее окно, но в дополнение к нему: Открывает новое окно с какой-то ошибкой, написанной в формате json, или заранее созданная (не моя) функция всплывающего окна, кажется, бесконечно запускается снова и снова - это я вижу в «проверке». Во втором случае все зависает и приходится перезагружать страницу.
[*]Я попробовал разместить функцию «щелчок», которая должна открывать всплывающее окно, внутри функции «init», а вне ее, она работает только изнутри.
Что может заставить один и тот же код работать в одном случае, но не в другом?
Если это jQuery, как я могу отследить проблему: он загружается дважды или не загружается вообще?
Пожалуйста, помогите!
Некоторое время назад я написал код, отображающий частичное представление в виде всплывающего окна. В том старом случае я написал HTML и JavaScript с нуля, и это сработало.
Для этого я использую «диалог».
$('#UserChangePassword').dialog({ zИндекс: 9998, модальное: правда, перетаскиваемый: правда, изменяемый размер: ложь, позиция: ['центр', 'центр'], показать: «слепой», скрыть: «слепой», ширина: «авто», высота: «авто», диалогкласс: 'ui-dialog-osx', открыть: функция (событие, пользовательский интерфейс) { $("span.ui-dialog-title").dir = "rtl"; $("span.ui-dialog-title").text("משתמש פורטל") //если (обратный вызов!= не определено) { // перезвонить() //} }, закрыть: функция () { } }); } Однако теперь, когда я пытаюсь добавить ту же функцию (всплывающее окно) в существующий код, написанный ранее кем-то другим, я получаю сообщение об ошибке «$(...).dialog не является функцией».< /п> Я уже пытался провести некоторое исследование по этому поводу. Насколько я понимаю, это может быть вызвано либо тем, что jQuery вообще не загружен, либо jQuery загружен более одного раза.
HTML из кода, который работает — в главном окне есть следующее:
src = "/Scripts/old_script.js" @section ClientScripts{ [*] @(Html.Telerik().ScriptRegistrar().Globalization(true).Scripts(group => group.AddSharedGroup("SharedScripts") .AddSharedGroup("TelerikScripts") .AddSharedGroup("Сценарии счетов"))) } html идет сюда @Html.Partial("ИзменитьПароль") HTML из работающего кода – частичное представление: (да, он тоже использует Telerik, и это работает)
@section ClientScripts { @(Html.Telerik().ScriptRegistrar().Globalization(true).Scripts(group => group.AddSharedGroup("SharedScripts") .AddSharedGroup("TelerikScripts") .AddSharedGroup("TerminalWorkstationScripts"))) } htmll идет сюда Главное окно, куда я хочу это добавить:
@section ClientScripts { @(Html.Telerik().ScriptRegistrar().Globalization(true).Scripts(group => group.AddSharedGroup("SharedScripts") .AddSharedGroup("TelerikScripts") .AddSharedGroup("WorkstationScripts"))) } И отдельно от него:
@(Html.Telerik().ScriptRegistrar().jQuery(false).OnDocumentReady(@"twCreatePopup.init();twCreatePopup.whenPopupEnter();")) Похоже, что тот, кто работал над этим до меня, имел свой собственный способ отображения всплывающих окон, отсюда и эти функции. Я предпочитаю НЕ трогать его часть, просто чтобы мой код работал вместе с его.
Может ли быть причина в том, что здесь скрипты Телерика загружаются/обращаются дважды? Может их можно объединить в одну команду?
Что я пробовал:
Добавление блока Telerik в html частичного окна, пробовал с ним и без - без изменений
[*]
Попробовал скопировать весь блок ClientScripts из старого главного окна в новое, попробовал закомментировать/снять комментарии части строк - без изменений
[*]
Отключение одного из объявлений сценария Telerik в html нового окна – очевидно, это вызывает проблемы с существующим кодом
[*]
Пытался вызвать саму функцию в JavaScript двумя способами:
$('#Button').click(function () { alert(document.getElementById('ConfirmCode').dialog); $('#ConfirmCode').dialog.dialog('open'); } И вот так:
$(функция () { $("#ConfirmCode").dialog( { автооткрытие: ложь }); $("#Button").click(function () { предупреждение(1); $("#ConfirmCode").dialog('open'); }); }); Ошибка все еще существует.
[*]Использование «$.noConflict()»
Здесь результаты были самыми странными. Я пробовал использовать их в обеих версиях функций: перед именем функции или внутри нее, перед командой «открыть диалог». Он по-прежнему не показывает всплывающее окно, но в дополнение к нему: Открывает новое окно с какой-то ошибкой, написанной в формате json, или заранее созданная (не моя) функция всплывающего окна, кажется, бесконечно запускается снова и снова - это я вижу в «проверке». Во втором случае все зависает и приходится перезагружать страницу.
[*]Я попробовал разместить функцию «щелчок», которая должна открывать всплывающее окно, внутри функции «init», а вне ее, она работает только изнутри.
Что может заставить один и тот же код работать в одном случае, но не в другом?
Если это jQuery, как я могу отследить проблему: он загружается дважды или не загружается вообще?
Пожалуйста, помогите!
Мобильная версия