QBO V3操作的行为顺序
QBO V3 Behavior order of operations
我遇到了一个创建"依赖"行为的问题,其中要依赖的对象是尚未加载的<option/>
标记,因为它通过ajax调用加载。似乎存在一个竞争条件,其中依赖行为试图在ajax调用完成之前加载。下面是无法加载依赖行为的元素标记:
<div class="control-group" data-behavior="Depend" data-depend-options="{{'depends': 'W9', 'required': true}}">
"W9"将是<option/>
标签的ID。这个选项标签将由以下代码加载:
<select name="ProfessionalLicenseType" id="ProfessionalLicenseType" class="required" data-behavior="Dropdown" data-dropdown-options="{{ 'type': 'ObjectType', 'data': {{ 'Object': 'ProfessionalLicense' }}, 'selected': '{AttachmentType}', 'id': 'ObjectType' }}">
我不应该使用HTML标记来创建依赖行为吗?我应该尝试使用javascript来创建这个依赖关系吗?
依赖行为支持绑定到一个选择标签的值,而不是一个选项标签:
<div class="control-group" data-behavior="Depend" data-depend-options="{{'depends': 'ProfessionalLicenseType=W9', 'required': true}}">
依赖行为,在初始化时,将检查ProfessionalLicenseType的值,并发现它是空的,禁用/隐藏你的依赖div标签。它还将在ProfessionalLicenseType下拉列表中添加一个更改事件处理程序(qbo.dependencies .js第45行):
source.addEvent('change', qbo3.dependencyCheck.pass([source, element, options, depends]));
Dropdown行为将稍后(异步)通过AJAX加载您的选项,如果该行为的选项。选中即设置,将设置匹配选项。select =true (qbo.Dropdown.js line 105):
if ((row[value] || row) == options.selected) {
target.options[target.options.length - 1].selected = true;
target.defaultIndex = target.options.length - 1;
target.fireEvent('change');
}
这个工作是上面提到的target.fireEvent('change')
;
相关文章:
- ajax请求的顺序总是不同的
- 按照选项卡索引的顺序循环一个jQuery选择
- 匹配一个单词,其中候选人可以跨越顺序组(跨度)
- 按顺序添加和删除类
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 按我自己的类克隆另一个元素的内容和顺序
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 标记的实时更新,无需加载页面谷歌地图API V3
- Javascript-根据赋值顺序,按键合并对象数组
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- querySelector/getElementByClassName嵌套项的顺序
- 谷歌地图v3标记没有显示ie8和9
- 谷歌地图停止显示点v3
- 以不同的顺序输出数据
- 重新排列HTML元素的顺序并更改内容
- 覆盖在赢得'不允许点击下面的标记,谷歌地图api v3
- 在Javascript中列出顺序子集元素
- 是否“;对于的“;循环迭代遵循JavaScript中的数组顺序
- 如何在多承诺链中处理谷歌地图API V3事件
- QBO V3操作的行为顺序