#javascript #jquery
#javascript #jquery
Вопрос:
Является ли это допустимым jQuery? Или я слишком сильно перепутал его с обычным JavaScript? В любом случае это не работает (я бы ожидал, что он напечатает «тестирование» между соответствующими тегами):
<script type="text/javascript">
var testing = "testing";
testIt=function() {
$('#cont').html(testing);
}
</script>
вызывается, когда:
<input TYPE="button" NAME="button4" Value="Write" onClick="testIt()">
очевидно, что существует:
<div id="cont"> </div>
в html.
Комментарии:
1. jQuery — это JavaScript! Я бы не стал беспокоиться о смешивании двух 😉
2. Вы приняли ответ, но мы все еще не знаем, что не так с вашим кодом?
3. Ах, извините (в первый раз), в принципе, я забыл включить библиотеку jquery, я идиот. Быстрое понимание необходимости создания полного минимального примера для каждой проблемы.
Ответ №1:
Нет, это не «слишком много смешивать jQuery и Javascript». jQuery — это Javascript. Вам никогда не придется беспокоиться о их смешивании.
Я не могу воспроизвести вашу проблему. Кажется, ваш код работает нормально. Посмотрите это в этой демонстрации.
Тем не менее, я думаю, вам следует использовать метод, который более подходит для jQuery, вместо смешивания Javascript с разметкой.
Я бы рекомендовал изменить NAME
атрибут
NAME="button4"
к id
атрибуту:
id="button4
и использовать этот jQuery:
var testing = "testing";
$("#button4").click(function(){
$("#cont").html(testing);
});
Комментарии:
1. Есть идеи, почему это может не работать? Если я помещу alert («Привет, мир!»); внутри функции это работает просто отлично
2. @JimBo Я не знаю, может быть, вы могли бы сослаться на имя, которого не существует (например, идентификатор div есть
content
, но вы пытаетесь ссылатьсяcont
)3. Отследил проблему до чего-то совершенно не связанного, спасибо за вашу помощь, особенно. с примером (и спасибо всем остальным, кто показал мне правильный способ сделать это).
Ответ №2:
- jQuery — это библиотека JavaScript
- Ваш код работает правильно. Единственная ошибка, о которой я мог подумать, это то, что вы не включили jQuery в свой html-файл.
Комментарии:
1. Именно поэтому я включил множество библиотек и тупо забыл jquery, что объясняло, почему alert() работал, но не .html
Ответ №3:
Если вы все равно используете jQuery (который представляет собой фреймворк, написанный на / для JS), делайте это надлежащим образом, чтобы улучшить читаемость:
var testing = "testing";
$("button[name=button4]").click(function () {
$("#cont").html(testing);
});
Либо поместите это после кнопки, либо поместите код между $(function () {
и });
. У jQuery есть отличная документация, доступная по адресу http://api.jquery.com /
Ответ №4:
Если вы используете jQuery, я бы рекомендовал использовать click
обработчик вместо создания глобальной переменной testIt
. Например:
<script type="text/javascript">
var testing = "testing";
$("input[name='button4']").click(function() {
$('#cont').html(testing);
});
</script>
Это обеспечивает более четкое разделение между вашим поведением (javascript) и вашим контентом / разметкой (html).
Технически нет, нет такой вещи, как смешивание слишком большого количества jQuery и javascript (поскольку jQuery — это javascript). Поскольку jQuery — это абстракция множества грязных вещей, которые делает DOM, имело бы смысл использовать его там, где вы можете, вместо того, чтобы писать чистый javascript. Использование как можно большего количества jQuery также имеет то преимущество, что вы можете меньше беспокоиться о межбраузерных различиях.
Ответ №5:
Появляется ли ваш тег script перед input
элементом на странице? Если нет, то это проблема (или, по крайней мере, одна из них).
В качестве альтернативы проверьте, нет ли на странице других ошибок javascript, проверив консоль в любом из различных отладчиков JS.
P.S. jQuery — это Javascript, точнее, это библиотека вспомогательного кода, написанного на Javascript, чтобы сделать работу с браузером более удобной.