2016-05-07 4 views
0

Я хочу добавить класс «active» к <li>, когда этот щелчок (как вкладка). CoffeeScript будет искать URL-адрес и сбросить URL-адрес хэша, чтобы предоставить контент на странице. Я использую $("."+key).addClass("active"), чтобы добавить класс, когда выбрана каждая вкладка. но начальное значение ключа не определено, поэтому в консоли javaScript отображается jQuery Uncaught Error: Syntax error, unrecognized expression:. .Добавить класс в div после выполнения location.search и decodeURIComponent

Как указать начальное значение ключа в этом случае, так как страница всегда перезагружается после location.search?

HTML:

<nav> 
    <ul class="nav"> 
     <li class = "sherlock"><img src="logo1.png" ></a></li> 
     <li class = "aesop"><img src="logo2.png" ></a></li> 
    </ul> 
</nav> 

CoffeeScript:

$ -> 
    key = decodeURIComponent(location.search).replace("?","") 

    $("."+key).addClass("active") 

    $("nav").on "click",".sherlock", -> 
    key = "sherlock" 
    location.replace("#") 
    location.search = encodeURIComponent(key) 


    $("nav").on "click",".aesop", -> 
    key = "aesop" 
    location.replace("#") 
    location.search = encodeURIComponent(key) 

ответ

2

Проверьте ключ не определено перед выходом на:

key = decodeURIComponent(location.search).replace("?","") 

    if (typeof key !== "undefined"){ 
     // your code here. 
    } 

Вы также можете использовать if (key){//Your code here } если ключ определяется в другом месте, но может быть пустым или нулевым.

+1

Или 'if (key?)', Поскольку это CoffeeScript. –

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