为啥在使用 jqmData 添加属性时无法触发 jquery 移动小部件的增强功能?
Posted
技术标签:
【中文标题】为啥在使用 jqmData 添加属性时无法触发 jquery 移动小部件的增强功能?【英文标题】:Why I cannot trigger enhancements on jquery mobile widgets, when using jqmData to add attributes?为什么在使用 jqmData 添加属性时无法触发 jquery 移动小部件的增强功能? 【发布时间】:2013-03-01 18:09:34 【问题描述】:我正在尝试创建一个完全动态的“jquery mobile”“表格小部件”。
问题是,JQM 正在使用它来创建不同的“表格模式”:
$.mobile.document.delegate( ":jqmData(role='table')", "tablecreate", function(e)
// some magic happens here
);
为了防止表格自动增强,我排除了触发属性":jqmData(role='table')"
,直到我的源代码准备好。然后我添加属性并调用它:
// tbody
target
.empty()
.append(allRows)
// this enhances elements inside table rows
.trigger("create")
.closest('table')
// add triggering attribute
.jqmData('role', 'table')
// enhance the table (step 1 of 2)
.table(
create: function( event, ui )
)
这只是让我半途而废,因为现在我的表具有必要的属性":jqmData(role='table')"
,但我似乎无法在其上触发tablecreate
。
我试过了
.trigger('tablecreate')
.table(
tablecreate: function( event, ui )
)
但它们什么都不做,所以我假设我的元素没有被委托事件绑定捕获(也可能是错误的)。
问题: 在纯 jquery 中,当我在时间 X 动态添加触发属性时,是否可以在委托处理程序中包含一个元素?
感谢您的意见!
【问题讨论】:
【参考方案1】:好的。自己找到的:
问题是:
.jqmData('role', 'table')
似乎并非一直有效,因为调用此函数时不会设置 data-role="table"
。
我尝试了以下方法:
.attr('data-role', 'table')
并且设置了属性并且表格增强正常工作。
也许也能帮助别人!
【讨论】:
以上是关于为啥在使用 jqmData 添加属性时无法触发 jquery 移动小部件的增强功能?的主要内容,如果未能解决你的问题,请参考以下文章
当我添加 NSPredicate 时,为啥我的 NSFetchedResultsController 委托停止触发?
为啥在数据模板中使用 xaml UserControl 时无法绑定到依赖属性? [复制]