【发布时间】:2017-02-17 09:20:23
【问题描述】:
我遇到了一个问题,正在寻找在不改变 Yii2 框架的情况下解决它的最佳方法。
我有一个页面,其中包含可以排序的元素。我正在使用 yii-jui 可排序小部件,在初始视图后一切正常。
在某些情况下,我需要使用每个 ajax 的所有元素来更新内容。这也有效。
问题是,当我在 ajax 调用后更新内容时,可排序元素及其容器的 jquery 初始化会丢失。
在构建初始视图时,yii-jui 扩展将用于初始化可排序元素的 javascript 放置在 Javascript 块中的文档就绪函数中。正如我已经说过的,这在第一个视图中效果很好。但是,当我更新内容时,初始化会丢失,并且不知何故我需要再次运行 javascript 初始化。我无法执行此操作,因为未触发文档就绪功能。
一种可能的解决方案是将可排序元素的所有 JS 初始化放入一个单独的函数中,并在第一个视图之后以及 ajax 更新之后显式调用它。困难在于我看不出用 yii-jui 小部件来执行此操作,因为它将所有初始化(事件和选项)作为单个调用放在 on-document-ready 函数中。
我考虑过以下几点:
- 在 yii-jui 小部件中添加一个选项来放置初始化步骤 变成一个 JS 函数
- 使用视图事件挂钩来操作 JS 在构建 HTML 之前进行捆绑/资产设置,这样我就可以 创建我需要的功能
- 不要在 yii-jui 小部件,但我自己编写了一个单独的初始化脚本。
关于如何最好地进行的任何想法?
感谢您的任何意见
安迪·波特
【问题讨论】:
标签: jquery ajax yii2 jquery-ui-sortable