определение того, какая страница загружается при использовании турболыков

Я понимаю, что могу запускать JavsScript при каждой загрузке страницы при использовании турболинки, используя:

$(document).on('page:load', ready)

..но как лучше всего запускать блок JS только тогда, когда загружается определенная страница (например, домашняя страница, поэтому не запускайте JS для других страниц)? Я думаю просто обернуть контент в класс-оболочку, например, для страницы, у меня есть конкретный фрагмент JS для:

<div class="homeWrapper">
...homepage...
</div>

..затем сделайте что-нибудь вроде:

$(".homeWrapper .whatever") or $(".homeWrapper").find(".whatever")

.. но меня беспокоит, что если мне придется делать это для каждого элемента страницы при каждой загрузке страницы, это может замедлить ее работу (слишком много jqueries). Есть ли лучший способ сделать это или это наиболее распространенный подход для страниц Turbolink.


person Martyn    schedule 26.02.2014    source источник


Ответы (1)


Для этого вы можете просто использовать функцию .length() в JQuery:

var el = $(".element");

if ( el.length > 0 ) {
    //do something here
}
person Richard Peck    schedule 26.02.2014