如何检测jQuery Mobile是否增强了控件?

时间:2013-10-31 12:55:35

标签: jquery-mobile

例如,如果您尝试拨打

$(element).checkboxradio('refresh');

在一个尚未被jQuery Mobile增强的复选框上,它引发了一个异常,说你不能在未初始化的元素上调用'refresh'。

jQuery Mobile要求您在非增强元素上调用'create'并在增强元素上调用'refresh',但不提供检查元素是否已增强的文档化方法。

那么,有没有办法检测它,除了捕获异常?

1 个答案:

答案 0 :(得分:1)

查看引发异常的JQM代码,我看到JQM通过检查某个对象的$(element).data(“mobile-checkboxradio”)来内部确定状态。如果它不存在,则会引发异常。

所以这似乎工作得很好:

if ($(element).data("mobile-checkboxradio"))
    $(element).checkboxradio('refresh');