2013-05-26 3 views
2

Почему следующий код не переходит на новую страницу?jQuery почему тело не работает?

$(document).ready(function(){ 
    $(document.body).click(function(){ 
     window.location.href="who.html" ; 
    }); 
}); 

Я не вижу никаких прямых ошибок, я пытался с $ (тело) $ («тело») и $ («# тело») и каждый раз, когда я нажимаю на теле моей страницы I «Не буду на следующей странице.

+3

Вы получаете какие-либо предупреждения в консоли? Вы уверены, что готова функция стрельбы? Вы включили этот код * после * загрузки jQuery? – Dave

+0

Я скопировал ваш код на консоль, щелкнул тело на этой странице и перенаправлен на 'who.html' (который по какой-то причине перенаправляется сюда). – Prinzhorn

+0

Я добавил его после загрузки jquery, и у меня появилось консольное сообщение, в котором говорилось, что готовая функция инициализируется –

ответ

11

Отметьте это JSFiddle, так как вы можете увидеть, если вы нажмете «тест», он работает очень хорошо, иначе он не работает. Зачем? Потому что body - это все, что содержит внутри него содержимое, а не всю страницу (так что если тело пустое click событие никогда не будет запущено). Если вы хотите, чтобы вся страница была перенаправлена ​​по клику, вам необходимо связать $(document).

$(document).click(function() { 
    window.location.href = "who.html"; 
}); 
+1

спасибо, что это исправлено для меня, я не знал, что вам пришлось привязать ее к документу, спасибо для быстрого ответа !!! –

+0

Примечание для людей, которые нашли это в google, но ищут решение Vanilla JS: эквивалентным фрагментом кода будет 'document.addEventListener (« click », click);' (имела ту же проблему с 'body.addEventListener()') –

0

Вы можете просто сделать это:

$(document).ready(function(){ 
    $(document).click(function(){ 
     console.log('Document is clicked!'); 
     window.location.href="who.html" ; 
    }); 
}); 
Смежные вопросы