呈现模态视图并将事件绑定到它的最佳实践是什么?
What is the best practice for presenting a modal view and binding events to it?
在一个非常常见的场景中,我有一个带有"Add"按钮,该按钮打开一个模态对话框(通过Facebox),并要求用户从其中出现的列表中选择项目。
模态对话框从服务器异步获取它的HTML片段。我希望这个代码片段可以在我的应用程序的许多部分重用,所以它不应该假设我使用Facebox来加载它。它唯一要做的就是在用户选择其中的一个项目时触发item-selected
事件。但是由于代码段是异步加载的,所以我不能使用$(document).ready
。也就是说,我不能像这样触发事件:
$(document).ready(function() {
$(".item").click(function() {
$(".items-modal-dialog").trigger("item-selected", this);
});
});
另外,我真的不喜欢使用items-modal-dialog
类来标识封闭的DOM元素。
我想出了一些解决方案,我想知道是否有一些优秀的模式,我错过了,因为我认为这是一个非常普遍的问题。
- 把脚本后所有的HTML,所以我确信片段DOM加载(我认为这是一个坏的做法) 创建一个JavaScript函数,用Facebox加载代码片段,然后绑定事件。这样我就假设我在使用Facebox,并且还必须为我创建的每种类型的模态对话框创建一个函数。我看到的唯一积极的一面是,我可以以编程方式创建
- 使用jQuery实时绑定事件。 使用iframe和
items-modal-dialog
DIV,所以我不必使用类来识别它。$(document).ready
。在我看来,使用jQuery的live或delegate函数是最好的解决方案。
相关文章:
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 处理浮点错误的最佳方法是什么
- javascript导入的最佳实践是什么
- 在ng重复循环中显示条件内容的最佳方式是什么
- 实现比较方法的最佳实践是什么;s的比较类型是在运行时选择的
- 以编程方式填充组合框道场 (1.8) 的最佳方法是什么?
- 在node.js中编写单元测试的最佳方式是什么
- 使用AJAX在Rails中提交动态表单的最佳方式是什么
- 使用Angular存储用户以前是否选中过复选框,然后再调用它的最佳方式是什么
- 列出没有 mysql 的元素的最佳方法是什么
- 在AngularJS中使用多个主题的最佳方式是什么
- 存储数据的最佳方式是什么,以便与jquery一起使用
- 在企业应用程序框架中包含js/css文件的最佳实践是什么
- 在d3.json中使用d3.csv组合多个csv文件数据输入的最佳方法是什么
- 用JavaScript随机给网页上的每个字母上色的最佳方式是什么
- 如果我返回表,检查 Ajax 调用是否为 200 OK的最佳方法是什么
- JavaScript - 创建可链接函数时的最佳方法是什么
- 在上下文菜单项单击上显示侧边栏/弹出窗口的最佳方法是什么
- 将JavaScript检测与MVC4显示模式集成的最佳方式是什么
- addEvent()传奇事件之后的当前最佳实践是什么