2014-10-24 1 views
0

Я загружаю код из моего проекта в Plunker. Вы можете видеть это here. Когда я запускаю код через локальный сервер и отображаю его в Chrome, функциональность работает нормально. Когда я пытаюсь запустить его через Plunker, код выходит из строя.

Этот фрагмент кода находится внутри script.js:

$('.navbar-toggle').click(function(){ 

    alert('test1'); 

    if ($(this).hasClass('login')) { 
     $('.navmenu-style1').css("z-index","1"); 
     $('.navmenu-style').css("z-index","0"); 
    } 
    else { 
     $('.navmenu-style1').css("z-index","0"); 
     $('.navmenu-style').css("z-index","1"); 
    } 
}); 

Как я могу заставить его работать в Plunker пожалуйста? Есть ли более универсальный бит кода, который я могу использовать, или я просто делаю что-то неправильно?

Приветствия

+1

Вы пытались исправить ошибку синтаксиса HTML в строке 90? – amphetamachine

+0

@amphetamachine Да. Это, похоже, не имеет ничего общего с моей проблемой .js. – Vercingetorix

+0

Вы посмотрели на консоль? У вас есть две ошибки как со ссылками на документы с угловой ошибкой для получения дополнительной информации. Это, по-видимому, основное: ['Uncaught Error: [$ injector: nomod]'] (https://docs.angularjs.org/error/$injector/nomod?p0=sparkr) – War10ck

ответ

1

Вы сделали один из самых распространенных ошибок, кто делает при использовании JQuery. Вы пытались прикрепить обработчик щелчка к объекту DOM, прежде чем был загружен DOM:

<html> 
<head> 
... 
<script src="script.js"></script> 

содержимого script.js:

$('.navbar-toggle').click(function(){ ... }); 

Вы должны ждать DOM, чтобы загрузить перед запуском, что код. Как так:

$(function() { 
    $('.navbar-toggle').click(function(){ ... }); 
}); 

Примечание: $(function) это просто ярлык для $(document).ready(function).

+0

Щелчок даже работает в Chrome – mplungjan

+1

Я знаю, он, должно быть, выиграл гонку потому что ему пришлось выполнить Angular и все те другие libs, прежде чем он выполнил script.js. – amphetamachine

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