Использование jQuery с google.load - PullRequest
       8

Использование jQuery с google.load

1 голос
/ 07 декабря 2009

Я пытаюсь понять, как использовать jQuery, когда он загружается с помощью метода Google CDN google.load.

Помещение кода инициализации в функцию setOnLoadCallback прекрасно работает, но определение функций для обработчиков событий в разметке, похоже, не работает. В приведенном ниже примере кнопка P работает как положено, но кнопка Div ничего не делает.

Да, в этом примере я могу поместить обработчик onclick элемента div также в функцию setOnLoadCallback, но означает ли это, что весь код jQuery должен быть там?

Помощь? Спасибо

<p id="p">Content</p><button type="button" id="btn1">P</button>

<div id="div">Div</div><button type="button" id="btn2" onclick="btn2()">Div</button>

<script src="http://www.google.com/jsapi"></script>

<script>

function btn2() {
 $("#div").toggle("slow");
}

google.load("jquery", "1.3.2");
google.setOnLoadCallback(function() {
$("#btn1").click(function () {
      $("p").toggle("slow");
});
});

</script>

Ответы [ 3 ]

2 голосов
/ 07 декабря 2009

Поместите ваш вызов скрипта Google jsapi и google.load вверху <head> в вашем документе. При запуске он просто выдаст

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" 
    type="text/javascript"></script> 

, где google.load было.

Затем поместите весь свой код jQuery внутрь:

$(function() {
    // all your jQuery code here
});

это сокращение от $(document).ready(function(){ });

0 голосов
/ 07 декабря 2009

Да, вам нужно иметь весь свой код jQuery внутри setOnLoadCallback, если вы хотите загрузить jQuery таким образом. Пока это событие не сработает, нет гарантии, что скрипт jQuery загружен, и, следовательно, любой код jQuery вне этой функции может быть недействительным. Если вы хотите определить код jQuery вне этого события, вы можете сделать это, загрузив jQuery из URL CDN Google, а не динамически с помощью google.load ().

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

http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js

Вы можете просто включить его в заголовок документа как внешний ресурс скрипта, как обычно. Вы по-прежнему получаете преимущества Google CDN, поскольку большинство браузеров имеют кэшированную копию jQuery в этом месте (при условии, что они посетили другой сайт, который использовал Google CDN).

0 голосов
/ 07 декабря 2009

Одним из ключевых моментов JQ является ненавязчивость, поэтому вам не следует использовать <element onclick="..."></element>. Вы всегда должны использовать $(selector).click(). Кроме того, вы, как правило, хотите, чтобы это было объединено в один $(document).ready(); или во внешние сценарии.

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