2015-05-04 2 views
0

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

$('a.spoiler').hover(function() { 
    var text = $(this).text(); 
    var content = $(this).attr("content"); 
    $(this).text(content).attr("content", text) 
}); 

Что находится в заголовке HTML-страницы.

и HTML

<!DOCTYPE HTML> 
<html> 
    <head> 
    <script src="js/jquery.min.js"></script>   
    <script>  
     //Spoiler hiding 
     $('a.spoiler').hover(function() { 
     var text = $(this).text(); 
     var content = $(this).attr("content"); 
     $(this).text(content).attr("content", text) 
     }); 
    </script>  
    </head> 
    <body> 
    <a href="" onclick="return false" class="spoiler" content="Winner"> 
     Reveal 
    </a> 
    </body> 
</html> 

Но я не могу показаться, чтобы заставить его работать.

Любые идеи

ответ

3

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

$(function(){ 
    $('a.spoiler').hover(function(){ 
     var text = $(this).text(); 
     var content = $(this).attr("content"); 
     $(this).text(content).attr("content", text) 
    }); 
}); 

Working Demo

+0

Хммм, что произойдет, если элемент не будет загружен на страницу до конца. Например, что, если элемент был загружен только после вызова Ajax? – unknownSPY

+0

лучше ли ставить пользовательскую JS в нижней части элемента body, а не в голову, и поддерживать только ссылки библиотеки/рамки в голове, чтобы ускорить загрузку страницы? –

0

на основе @ karthikr Ответим: Путь вашего кода в настоящее время вы подключаете слушатель элемент, который не существует в момент интерпретации этого кода.

Обертывание кода в

$(document).ready(function(){ 
    // your code 
} 

удостоверится, что HTML интерпретируется, прежде чем ваш скрипт выполняется, таким образом, убедившись, что элемент, который вы хотите прикрепить обработчик существует.

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