所以我用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命令没有给我任何错误,这意味着路由是正确的。但是脚本不起作用......
答案 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())
});
});