I am trying to create a basic jQuery function on my twig template but I can't seem to get it to work. Can someone please help me!?
My Twig File is as follows:
{% block javascripts %}
{#if you include jquery here, the scripts that need jquery will fail because jquery exists since this point !#}
<script type="text/javascript" src="{{ asset('js/jquery.min.js') }}">
$(".nav li.expanded").hover(
function(){
$(this).addClass("open");
},function(){
$(this).removeClass("open");
}
alert("Inside Function");
);
alert("Outside Function");
$(document).ready(function(){
alert("Ready!");
});
</script>
{% endblock %}
{% set heading_id = attributes.id ~ '-menu'|clean_id %}
<nav role="navigation" aria-labelledby="{{ heading_id }}"{{ attributes.removeClass('clearfix')|without('role', 'aria-labelledby') }}>
{# Label. If not displayed, we still provide it for screen readers. #}
{% if not configuration.label_display %}
{% set title_attributes = title_attributes.addClass('sr-only') %}
{% endif %}
<h2{{ title_attributes.setAttribute('id', heading_id) }}>{{ configuration.label }}</h2>
{% block content %}
{{ content }}
{% endblock %}
Error Output:
The website encountered an unexpected error. Please try again later.</br></br><em class="placeholder">Twig_Error_Syntax</em>: Unknown "asset" function. in <em class="placeholder">Twig_ExpressionParser->getFunctionNodeClass()</em> (line <em class="placeholder">38</em> of <em class="placeholder">themes/custom/navy/templates/block/block--system-menu-block--main.html.twig</em>). <pre class="backtrace">Twig_ExpressionParser->getFunctionNode('asset', 38) (Line: 162)
Twig_ExpressionParser->parsePrimaryExpression() (Line: 102)
Twig_ExpressionParser->getPrimary() (Line: 55)
Twig_ExpressionParser->parseExpression() (Line: 149)
Twig_Parser->subparse(Array, 1) (Line: 40)
Twig_TokenParser_Block->parse(Object) (Line: 192)
Twig_Parser->subparse(NULL, ) (Line: 105)
Twig_Parser->parse(Object) (Line: 716)
Twig_Environment->parse(Object) (Line: 774)
Twig_Environment->compileSource(Object) (Line: 452)
Twig_Environment->loadTemplate('themes/custom/navy/templates/block/block--system-menu-block--main.html.twig') (Line: 64)
twig_render_template('themes/custom/navy/templates/block/block--system-menu-block--main.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('block', Array) (Line: 437)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 450)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 195)
Drupal\Core\Render\Renderer->render(Array) (Line: 490)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 182)
__TwigTemplate_7206b6943ab6709e209af4c71d787052441f5e0fc6966fa51bfb08236a79f5ef->block_main(Array, Array) (Line: 215)
Twig_Template->displayBlock('main', Array, Array) (Line: 65)
__TwigTemplate_7206b6943ab6709e209af4c71d787052441f5e0fc6966fa51bfb08236a79f5ef->doDisplay(Array, Array) (Line: 432)
Twig_Template->displayWithErrorHandling(Array, Array) (Line: 403)
Twig_Template->display(Array) (Line: 411)
Twig_Template->render(Array) (Line: 64)
twig_render_template('themes/custom/navy/templates/page/page.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('page', Array) (Line: 437)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 195)
Drupal\Core\Render\Renderer->render(Array) (Line: 490)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 90)
__TwigTemplate_1851d7a76e53df9c9a6b9fa5328c4c7d784772b2109ead0be693668c41ae4e88->doDisplay(Array, Array) (Line: 432)
Twig_Template->displayWithErrorHandling(Array, Array) (Line: 403)
Twig_Template->display(Array) (Line: 411)
Twig_Template->render(Array) (Line: 64)
twig_render_template('themes/contrib/bootstrap/templates/system/html.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('html', Array) (Line: 437)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 195)
Drupal\Core\Render\Renderer->render(Array) (Line: 147)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 582)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 148)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 67)
Drupal\simple_oauth\HttpMiddleware\BasicAuthSwap->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 99)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 78)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 40)
Drupal\jsonapi\StackMiddleware\FormatSetter->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 666)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
</pre>
asset()
is not defined. I don't see that function in the Twig docs either. twig.symfony.com/doc/1.x. Why not just do it the right way with a Javascript file, thenattach
the library either in the Twig file or a preprocess hook? – Kevin Nov 19 '18 at 19:31