Почему не работает следующий скрипт jquery? - PullRequest
0 голосов
/ 08 апреля 2009

У меня простая одностраничная настройка. В корневой папке у меня есть 3 подпапки (js, css и images). В корневой папке у меня есть страница index.html со следующим содержимым:

<html>
<head>
<title></title>
<script language="javascript" src="js/jquery-1.3.2.min.js"></script>
<script language="javascript" src="js/myscript.js"></script>
</head>
<body>
<a onclick="doSomething()" href="#" class="doSomething">Click!</a>
</body>
<html>

myscript.js содержит следующий код:

$('a.doSomething').click(function(){
//Do Something here!
alert('You did sometihng, woo hoo!');
});

Когда я нажимаю на ссылку, ничего не происходит. Чего мне не хватает?

Ответы [ 2 ]

10 голосов
/ 08 апреля 2009

Оберните документ. Уже вокруг кода:

$(document).ready(function() {
    $('a.doSomething').click(function(){
        //Do Something here!
        alert('You did sometihng, woo hoo!');
        return false; // return false to prevent default action
    });
});

Как сейчас, вы пытаетесь привязать событие к элементу, который еще не существует в DOM.

Кроме того, не уверен, почему у вас есть onclick на самой ссылке, поскольку весь смысл jQuery в том, чтобы иметь возможность убрать эти уродливые встроенные события и аккуратно связать их в javascript. Если вы сделаете это:

<a href="#" class="doSomething">yay click me</a>

А затем используйте приведенный выше код, он должен работать нормально.

0 голосов
/ 08 апреля 2009

Сначала я подумал, что вам просто не хватает функции с именем "doSomething". Затем я понял, что вы ожидаете, что ваш селектор все равно найдет тег привязки. Однако этого не произойдет. Во время выполнения сценария якорь еще не был добавлен в DOM.

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