2015-04-22 2 views
0

У меня проблема. У меня есть HTML-страница с кодом javascript и кодом jQuery в том же теге скрипта.Код jQuery не работает при загрузке страницы

Вот мой HTML С помощью JavaScript и JQuery:

<!DOCTYPE html> 
<html lang="en"> 

<head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <meta name="description" content=""> 
    <meta name="author" content=""> 

    <title>Page</title> 

    <!-- css --> 
    <link href="css/bootstrap.min.css" rel="stylesheet" type="text/css"> 
    <link href="font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css" /> 
    <link href="css/nivo-lightbox.css" rel="stylesheet" /> 
    <link href="css/nivo-lightbox-theme/default/default.css" rel="stylesheet" type="text/css" /> 
    <link href="css/animate.css" rel="stylesheet" /> 
    <link href="css/style.css" rel="stylesheet"> 

    <!-- javascript and bootstrap --> 
    <script src="js/jquery.min.js"></script> 
    <link href="js/bootstrap.min.js" type="text/javascript"> 
    <link href="js/modal.js" type="text/javascript"> 

    <!-- template skin --> 
    <link id="t-colors" href="color/default.css" rel="stylesheet"> 


    <script> 

    <!-- HERE IS SOME PURE JAVASCRIPT CODE --> 

$(document).ready(function() { 
    var table = $('#tableBody tr td'); 

    table.on("click",function() { 
    table.removeClass("test-class"); 
    $(this).addClass("test-class"); 
    }); 
}); 
</script> 

Моей проблемы: при загрузке страницы, моя функция JQuery не работает, но когда я копирую эту функцию и вставить его на консоли браузера, он работает отлично.

ПРИМЕЧАНИЕ: когда я помещаю предупреждение на консоль браузера, он работает. Это означает, что мой jQuery загружает страницу.

Что мне не хватает?

Заранее спасибо.

+1

Проверьте наличие ошибок в консоли JavaScript вашего браузера. – ceejayoz

+6

вы должны использовать теги скриптов для файлов javascript, а не теги ссылок – Sushil

+2

Есть ли на странице элемент 'table', или что-нибудь с этим ID? – tymeJV

ответ

2

попробовать код

$('document').on("click",'#tableBody tr td',function() { 
    var table = $('#tableBody tr td'); 
    table.removeClass("test-class"); 
    $(this).addClass("test-class"); 
}); 

Я не знаю, создан ли элемент td в коде или i t - статический html. Если td или table являются динамическими, DOM не знает, где это происходит, потому что, когда браузер работает, он всегда сохраняет запись вашего оригинального html.

DOM иногда теряет отслеживание, поэтому использование формата ('click', '# target', func()) приведет к возврату DOM и снова обнаружению цели.

+0

Да, это все .. Он решил мою проблему, еще один урок узнал !! мой стол динамичен. Большое спасибо. –

0

Возможно, это связано с тем, что консоль браузера имеет свой собственный знак доллара «$», по крайней мере, Firefox и Chrome.

От https://developer.chrome.com/devtools/docs/console:

$()

Возвращает первый элемент, который соответствует указанному селектору CSS. Это ярлык для document.querySelector().

$$()

Возвращает массив всех элементов, которые соответствуют указанному селектору CSS. Это псевдоним для document.querySelectorAll()

$ х()

Возвращает массив элементов, которые соответствуют указанному XPath.

Чтобы проверить, если загружен JQuery вы можете выполнить в браузере консоли:

typeof jQuery 

Если он загружен ответ будет

"function" 
+0

мой jQuery загружен, я сделал этот тест. –

+0

Итак, вопрос в том, откуда вы знаете, что ваш код jQuery не работает? Не могли бы вы поместить '' '' console.log ('hello'), '' 'прямо под вашу строку' '' $ (document) .ready (function() {'' 'и проверить вывод консоли? – dekkard

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