我试着理解响应性在默认引导主题中是如何工作的。所有完成的功课都是徒劳的。
情况: 让我们举个例子,重点关注它;此主题允许在显示产品列表的两个选项之间进行选择:网格和列表。单击其中一个锚点后,产品列表将从“网格”更改为“列表”,而不会重新加载页面,也不会更改地址栏中的URL。
问题:
我的目标是将一些数据添加到两个显示选项中显示的列表中。因此,我自定义了模板文件product-list.tpl
以便打印附加属性。执行的代码行。但是:
我目前的理解:
我曾经在Chrome中使用开发工具来查找事件侦听器断点。换句话说,单击带有类large
的锚点会将我引导到$(".large").onclick()
事件绑定的文件,让我找到javascript执行的操作。但是在default-bootstrap主题下,这个操作只会引导我jquery-1.1.10.min.js
,这是(如你所知)jQuery库的最小化文件。我期望找到另一个包含使用该库的事件监听器的文件;像$(".large").onclick(....)
这样的东西。
问题:
如何查找在点击时执行页面内容更新的特定JavaScript代码?哪个文件/文件包含当前主题的reponsiveness?在我的所有js文件中,我都没有找到任何触发动作的元素的类名(类似large
)。
编辑基于David Taiaroa回答:
单击锚点后,无序列表<ul>
的类从grid
更改为list
。但是这些类没有太多的样式。发生的事情是<li>
的所有内容都被改变了。通常我应该找到类似的东西:$('ul').toggleClass("grid");
和/或一些jQuery / AJAX?
如果在这个实际主题中存在任何AJAX代码?即使在网络中,点击之后也没有GET请求,就像使用AJAX时一样。这很奇怪,它可能与Bootstrap的工作方式有关吗?
解决方案:
Prestashop 1.6的default-bootstrap主题中包含相关javascript的文件是global.js
。我根据Chrome Dev Tools下的Sources&gt; Event-Listeners断点进行了调查,这误导了我。我在检查源代码中的js文件的同时跳过这个文件。
答案 0 :(得分:1)
如果没有要引用的特定网址,我可以尝试一些一般性建议。
免责声明:)这些建议适用于典型的网页。我没有设计Prestashop模板的经验,因此在这种情况下可能并非全部适用
实现您描述的大图标/列表图标行为的一种方法是切换或添加CSS类。 jQuery操纵类,然后CSS接管并隐藏一些对象并显示其他对象,甚至可以动画事物并更改布局。
使用您的Chrome开发工具,查看您是否可以识别大型和列表图标的类别,甚至可能识别其父元素的类别。
在我所有的js文件中,我找不到任何图标大字。
我不确定是否一定需要对js文件中的icon-th-large进行任何引用。如果this is the actual icon那么我阅读你发布的内容的方式是,如果有人点击它,那么JS会启动并完成它的工作,可能是切换或添加类。
修改强>
可能还会发生一些AJAX,它允许您在不更改URL或重新加载页面的情况下将内容加载到页面中。
希望这有帮助!