2013-05-12 2 views
6

Мой вопрос заключается не столько в том, почему конкретный бит jQuery, который я написал, не работает, поскольку он не работает ни в какой jQuery; даже рабочие примеры, которые я скопировал непосредственно из таких мест, как W3 Schools.Почему jQuery не работает на моей домашней (локальной) машине?

Я использую jQuery время от времени в моей работе по разработке программного обеспечения, и хотя я никоим образом не эксперт, я хорошо знаком с ним. Впервые я пытаюсь использовать jQuery в домашнем проекте, и независимо от того, что я делаю, никто из них не будет работать. Пример, который я привел ниже, примерно так же прост, как я могу себе представить, и даже это не сработает.

<!DOCTYPE HTML> 
<html> 
<head> 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
</head> 
<body> 
<div> 
    <p>Old Stuff</p> 
</div> 
<script type="text/javascript"> 
    $('p').text('New Stuff'); 
</script> 
</body> 
</html> 

Что может быть неправильным с этим?

+0

Не удивлен, когда w3schools не работают. Посмотрите на http://w3fools.com почему не – mplungjan

+0

Ваш пример работает, если вы правильно загрузите jQuery - это означает, что http: // из файла или загрузите страницу http://jsfiddle.net/mplungjan/8tXC2/ – mplungjan

+0

Вы открытие страницы из вашего файлового менеджера? – BoltClock

ответ

8

Код в порядке.

Сценарий не загружается, потому что, поскольку вы, вероятно, не развертываете код, браузер по умолчанию использует протокол file://.

Чтобы решить эту проблему, добавьте http: в тэгом:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"> 
                      </script> 
+0

Я действительно пробовал здесь. Chrome не загружает скрипт. Если 'http: //' не указан, он искал 'файл: //' – acdcjunior

+0

@mplungjan, если 'http:' не существует, если браузеры не будут искать файл относительно корневой папки? –

+0

@mplungjan: протокол * необходим для локальных машин (по причинам, указанным в [BoltClock, ниже] (http://stackoverflow.com/questions/16509740/why-does-no-jquery-work-on-my- дом-машина/16509764? noredirect = 1 # comment23701542_16509764)). –

3

изменить это

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 

к этому

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
1

на способ загрузки JQuery может быть проблема , Когда вы начинаете свой URL с //, он должен работать, когда страница просматривается по протоколам HTTP или HTTPS. Однако, если вы откроете его как локальный файл, он не будет работать.

Учитывая, что ваш пример работает над HTTP, я предлагаю вам попробовать включить JQuery следующим образом:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"> 
</script> 
0

Использование http:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
-2

Вы забыли поместить

$('p').text('New Stuff'); 

внутри документ готов к этому, вы можете сделать вот так:

$(function(){ 
    $('p').text('New Stuff'); 
}); 
+0

Nope. Это после P, так что это нормально – mplungjan

+1

Но это не самая лучшая практика использования jQuery, поэтому рядом с jQuery js-файлом src include в локальном или CDN мы должны это сделать на документе. Функция готовности – Milson

+0

Мы не обсуждаем передовую практику. Иногда вам нужно иметь встроенный скрипт, и некоторые люди клянутся, что скрипты должны быть перед/телом и другими, которые должны быть в голове и так далее. Код работает, проблема связана с файлом: // по сравнению с http: // – mplungjan

0

Проверьте, имеете ли вы надлежащее разрешение на сценарий, вызывая расположение сценария в URL-адресе браузера. Итак, если вы только что положили «http://someloaction/js/jquery.min.js» в URL-адрес браузера. Если вы видите «запрещено», разрешения - это нормально.

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