#javascript #jquery #html #css
#javascript #jquery #HTML #css
Вопрос:
Ребята, я собираюсь немного прояснить это. Когда я смотрю на этот материал jQuery UI, я совершенно запутываюсь в том, что мне нужно загрузить и куда поместить файлы.
Что я только что успешно сделал, так это ссылку на веб-сайт jQuery, чтобы мне не пришлось ничего загружать, и увидел, что диалоговое окно работает.
Однако диалоговое окно из показанного мне примера связано с div. Этот div мне не поможет, если он находится в верхней части экрана, а поле ввода — внизу. У меня есть только одна функция в заголовке, которая вызывается из нескольких текстовых полей. Эта функция включает в себя оповещение javascript () с сообщением.
ПОЖАЛУЙСТА, скажите мне ТОЧНЫЙ код, который мне нужно ввести в функцию (мы будем называть его myFunction() ), которая будет выводить сообщение везде, где вызывается myFunction..
Если бы это был javascript, в разделе head в скрипте мы бы имели:
<script type="text/javascript">
function digitsOnly(){
alert("Digits only, please");
}
</script>
и в ряде текстовых полей мы бы имели:
<input type="test/javascript" onkeydown="digitsOnly()" />
Мне нужно красивое всплывающее окно, чтобы заменить оповещение javascript ();
Мне не нужно, чтобы это делало что-либо, кроме всплывающего сообщения рядом с вызывающим текстовым полем. Если его можно перетаскивать и изменять размер, это было бы круто. Но пока я буду доволен тем, что я упомянул..
Я постоянно изучаю языки. Я знаю, что в конечном итоге тоже изучу jQuery. Но мне нужно, чтобы это было сделано сегодня вечером, если это возможно.
Джеймс
Комментарии:
1. Проблема немного неясна. Можете ли вы поделиться каким-либо кодом, который демонстрирует проблему?
2. конечно. Все очень просто, у меня что-то вроде этого: <input type=»text» onclick=»myFunction()» /> теперь скрипт: <script type=»text/javascript»> function myFunction(){ alert(«Yo, G Dog»); </script> I’m doing a couple of things with the function. Но это не имеет значения. Мое окно оповещения фактически сообщает клиенту вводить только цифры, и оно связано с onkeydown. Но я прошу заменить это оповещение () чем-то красивым. Мне нужно, чтобы оно вызывалось onkeydown. И мне нужно, чтобы оно появлялось, конечно, там, где находится текстовое поле… точно так же, как это было бы в окне оповещения javascript..
3. я просто перепутал jQuery с dialog(). Это путь вперед 🙂
4. @JamesKhouriDevJunkie:
alert()
поля JavaScript не удобно всплывают «там, где они вызываются» … возможно, это просто кажется вам таким образом в вашем текущем проекте? Как правило, они появляются в центре экрана. В любом случае, похоже, что вам нужна конкретная проверка, поэтому вы можете захотеть проверить jquery.bassistance.de/validate/demo .5. Каждый раз, когда я вызываю оповещение javascript() внутри функции, содержащейся внутри скрипта в head, а затем вызываю его с каким-либо событием, привязанным к элементу управления, при вызове оно появляется в поле зрения того, где оно вызывается. Это все, что мне нужно для этого нового оповещения..
Ответ №1:
window.alert = function(message) {
// put your dialog box launching code here.
}
Ответ №2:
Взгляните на диалоговое окно jQuery UI. Это также не заменит значение по умолчанию alert()
, поэтому вам следует просмотреть свой код и заменить вызовы на alert(...)
экземплярами диалога.
Комментарии:
1. Потрясающе. Я не знал о диалоге 🙂 Просто переписываю свои модальности 🙂 Приветствия ~
Ответ №3:
alert()
Функция Javascript запускается раньше всего остального, поэтому сложно (если не невозможно) фактически заменить ее поведение по умолчанию. Однако вы можете легко создать свою собственную функцию. Вместо:
$('.clickable').click(function() {
alert("Clicked.");
});
Сделайте это:
$('.clickable').click(function() {
$('.dialog').dialog({
// options...
});
});
Вам придется просмотреть свой код и заменить каждое оповещение этим, однако это не должно быть слишком сложной задачей, особенно если вы используете что-то вроде Textmate, в котором есть функция «Поиск проекта».
Комментарии:
1. JavaScript
alert()
не запускается раньше всего остального. Однако это блокирует выполнение кода до тех пор, пока он не будет закрыт.
Ответ №4:
Ответ Тимоти был работоспособным. Смотрите мой комментарий позже для необходимого добавления. Я скопировал и вставил из ответа Тимоти Хоури с прикрепленным моим комментарием:
«Мне нужно, чтобы оно появлялось, конечно, там, где находится текстовое поле…точно так же, как это было бы в окне оповещения javascript. «
Я думаю, вы имеете в виду, что если бы вы частично прокрутили страницу вниз, а затем вызвали оповещение, оно было бы сосредоточено на вашем текущем порту просмотра (материал, который вы видите на экране)… и что вы хотите, чтобы это новое приукрашенное диалоговое окно делало то же самое.
Ответ — «Да»… Да, jQuery расположит диалоговое окно по центру прямо на вашем текущем порту просмотра, как и окно оповещения.
Вам нужно загрузить и ссылаться на основную библиотеку jQuery, а также на последнюю библиотеку jQueryUI, А также на одну тему jQuery CSS.
Тогда это должно быть так просто, как:
$("<p>Yo, G Dog<p>").dialog({ modal: true });
Итак, код Тимоти работал почти идеально. Мне пришлось немного повозиться, пока я не нашел причину, по которой открывались два диалоговых окна. Нет ответов от поиска в Google. Просто экспериментирование помогло мне увидеть, что каждый HTML-тег, вставленный в диалоговое окно, по какой-то причине открывал свой собственный диалог. Способ исправить это состоял в том, чтобы содержать все HTML-теги в div. Теперь даже не возникает пустой диалог.
Если вы не знаете, о чем я говорю, используйте свой собственный код и посмотрите, что произойдет. ЗАТЕМ поместите больше HTML-тегов в круглые скобки. Пример:
("<h3>Attention></h3><p>Yo, G Dog</p>").dialog({ modal: true });
Наконец, поместите h3 и p в div и посмотрите на отличные результаты:
("<div><h3>Attention></h3><p>Yo, G Dog</p></div>").dialog({ modal: true });
Этот последний фрагмент кода будет отображать только одно диалоговое окно. 🙂 Спасибо за ответ!
Джеймс
Комментарии:
1. 1) Не цитируйте полностью чей-либо ответ. Можно процитировать часть этого, чтобы помочь другим читателям сосредоточиться на том, что помогло вам, но цитирование всего этого сбивает с толку (каждый может просто прокрутить до него). 2) Причина, по которой ваш первый приведенный выше пример кода привел к тому, что jQuery запустил 2 диалоговых окна… это потому, что у вас было 2 корневых элемента. jQuery выполняет указанные вами команды для ВСЕХ соответствующих элементов… таким образом, $(«.blah»).hide(); скроет ВСЕ элементы с классом ‘blah’. и, следовательно, $(«<p>1</p><p>2</p>»).dialog(); покажет 2 диалоговых окна, потому что создаются и сопоставляются 2 элемента.
Ответ №5:
Попробуйте это:
$.extend({ alert: function (message, title) {
$("<div></div>").dialog( {
buttons: { "Ok": function () { $(this).dialog("close"); } },
close: function (event, ui) { $(this).remove(); },
resizable: false,
title: title,
modal: true
}).text(message);
}
});
Больше информации здесь;
Комментарии:
1. Старайтесь избегать вашего ответа в другом замке: когда ответ не является ответом
Ответ №6:
alert = function(a){ my_alert(a); }
Ответ №7:
Мне потребовалось прочитать вопрос около 100 раз, чтобы понять, что вы имели в виду под
«Мне нужно, чтобы оно появлялось, конечно, там, где находится текстовое поле…точно так же, как это было бы в окне оповещения javascript. «
Я думаю, вы имеете в виду, что если бы вы частично прокрутили страницу вниз, а затем вызвали alert
, то оно было бы сосредоточено на вашем текущем View Port
(материале, который вы видите на экране)… и что вы хотите, чтобы это новое приукрашенное диалоговое окно делало то же самое.
Ответ — «Да»… Да, jQuery расположит диалоговое окно по центру прямо в вашем текущем порту просмотра, как это было бы в alert
окне.
Вам нужно загрузить и ссылаться на основную библиотеку jQuery, А также последнюю библиотеку jQueryUI, А также на одну тему jQuery CSS.
Тогда это должно быть так просто, как:
$("<p>Yo, G Dog<p>").dialog({ modal: true });
Комментарии:
1. Я попробую. Спасибо, Тимми… Мой брат… от той же матери.. Извините: P
2. Тим, твой код был единственным, который работал. Но по какой-то причине я получаю два диалоговых окна, одно над другим, и это второе (скрытое за первым), которое содержит сообщение «Йоу, Джи Дог». Я могу видеть его только при закрытии верхнего диалогового окна. Есть предложения?