DMC*_*MCS 23 jquery user-interface jquery-ui widget progress-bar
我正在使用jQuery并与jQuery UI进行一些交互,我需要获取选项.但是,有可能jQuery UI函数尚未应用于DOM对象.当我访问一个选项时,我现在收到一个JavaScript错误.
我有一个DOM对象,它附带了进度条(http://docs.jquery.com/UI/Progressbar)(也许).在另一个线程中,我正在尝试使用 domObj.progressbar("option", "value")
.
如何确定如果domObj
有一个progressbar
连接?
jam*_*row 24
您可以通过执行以下操作来访问元素上的进度条对象:
$("#myid").data("progressbar")
Run Code Online (Sandbox Code Playgroud)
所以使用这个:
var progressBar = $("#myid").data("progressbar");
if ( progressBar == null ) {
// handle case when no progressbar is setup for my selector
} else {
alert("The value is: " + progressBar.value());
}
Run Code Online (Sandbox Code Playgroud)
Cyb*_*onk 10
根据此讨论,检测窗口小部件是否已在元素上呈现的推荐方法如下:
var hasWidget = $('selector').is(':ui-widgetname');
Run Code Online (Sandbox Code Playgroud)
从jQuery UI 1.11开始,可以通过以下instance
方法直接测试小部件:
var hasProgressbar = ($(element).progressbar("instance") !== undefined);
Run Code Online (Sandbox Code Playgroud)
文档:http://api.jqueryui.com/jQuery.widget/#method-instance
DOM 对象将附加一个额外的 CSS 类:“ui-progressbar”。如果您在http://docs.jquery.com/UI/Progressbar上查看源代码,那么您可以看到一个带有 id=progressbar 的 div,仅此而已,但是如果您使用 Firebug 并单击该元素,您可以看到它有更多的类添加。
编辑:我认为@jamiebarrow 的解决方案是更正确的解决方案。
归档时间: |
|
查看次数: |
13647 次 |
最近记录: |