Symfony2 Jquery没有做任何事情

时间:2015-05-06 08:42:42

标签: javascript jquery symfony twig

所以我用jQuery创建了一个简单的函数来检查它是否正常工作而事实并非如此。我不知道为什么会这样,因为我做了我在其他堆栈问题上找到的所有内容。它只是没有做任何事......

我现在所做的一切:

1)我创建了脚本并将其保存在文件中:

$('.plus').on('click', function (e) {
    $this = $(this);
    alert("product id "+$this.parent('.item').find('input').data('id') + " Quantity "+$this.parent('.item').find('input').val())
});

2)我在twig中添加了代码以使脚本工作:

<div class="item">
    <input type="text" value="2" data-id="1" />
    <a href="javascript:void(0)" class="plus">+</a>
    <a href="javascript:void(0)">-</a>
</div>
<div class="item">
    <input type="text" value="2" data-id="2" />
    <a href="javascript:void(0)" class="plus">+</a>
    <a href="javascript:void(0)">-</a>
</div>
<div class="item">
    <input type="text" value="2" data-id="3" />
    <a href="javascript:void(0)" class="plus">+</a>
    <a href="javascript:void(0)">-</a>
</div>

现在在我的base.html.twig中,我将jquery库添加到我的资产中:

{%block javascripts%}

        {# Le Javascript #}         
            {% javascripts 

                'bundles/mpFrontend/assets/js/jquery-1.11.2.min.js' // the jquery library       

                %}    

                <script src="{{ asset_url }}"></script>       
            {% endjavascripts %}

    {% endblock %}

然后在我的索引html中,我想让脚本工作:

1)延长基部树枝:{% extends "::base.html.twig" %}

2)我访问脚本:

{% block javascripts %} 
    {{ parent() }}  
    {% javascripts 'js/scripts.js'%}
         <script type="text/javascript" src="{{ asset_url }}"></script>
    {% endjavascripts %}
{% endblock %}

4)我做资产:转储:

php app/console assetic:dump

5)我在config.yml中添加了捆绑包,因为我收到错误:You must add "" to the assetic.bundle config

assetic:
    debug:          "%kernel.debug%"
    use_controller: false
    bundles:        [ MpShopBundle ]

这就是我所做的,代码仍然不起作用。 dump命令没有给我任何错误,这意味着路由是正确的。但是脚本不起作用......

1 个答案:

答案 0 :(得分:2)

您需要将javascript代码包装在jQuery的ready事件中。

$(document).ready(function () {
    $('.plus').on('click', function (e) {
        $this = $(this);
        alert("product id " + $this.parent('.item').find('input').data('id') + " Quantity " + $this.parent('.item').find('input').val())
    });
});