响应能力如何在Prestashop 1.6的Default-Bootstrap主题中工作?

时间:2014-06-18 15:25:46

标签: javascript jquery responsive-design prestashop prestashop-1.6

我试着理解响应性在默认引导主题中是如何工作的。所有完成的功课都是徒劳的。

情况: 让我们举个例子,重点关注它;此主题允许在显示产品列表的两个选项之间进行选择:网格和列表。单击其中一个锚点后,产品列表将从“网格”更改为“列表”,而不会重新加载页面,也不会更改地址栏中的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文件的同时跳过这个文件。

1 个答案:

答案 0 :(得分:1)

如果没有要引用的特定网址,我可以尝试一些一般性建议。

免责声明:)这些建议适用于典型的网页。我没有设计Prestashop模板的经验,因此在这种情况下可能并非全部适用

实现您描述的大图标/列表图标行为的一种方法是切换或添加CSS类。 jQuery操纵类,然后CSS接管并隐藏一些对象并显示其他对象,甚至可以动画事物并更改布局。

使用您的Chrome开发工具,查看您是否可以识别大型和列表图标的类别,甚至可能识别其父元素的类别。

  

在我所有的js文件中,我找不到任何图标大字。

我不确定是否一定需要对js文件中的icon-th-large进行任何引用。如果this is the actual icon那么我阅读你发布的内容的方式是,如果有人点击它,那么JS会启动并完成它的工作,可能是切换或添加类。

修改
 可能还会发生一些AJAX,它允许您在不更改URL或重新加载页面的情况下将内容加载到页面中。

希望这有帮助!