我正在使用jQuery,并与jQuery UI交互,需要获取选项。但是,有可能jQuery UI函数尚未应用于DOM对象。当我访问一个选项时,我现在得到一个JavaScript错误。
我有一个DOM对象,可能附加了进度条(http://docs.jquery.com/UI/Progressbar)。在另一个线程中,我正在尝试使用domObj.progressbar("option", "value")
访问选项。
如何确定该domObj
是否已附加progressbar
?
我正在使用jQuery,并与jQuery UI交互,需要获取选项。但是,有可能jQuery UI函数尚未应用于DOM对象。当我访问一个选项时,我现在得到一个JavaScript错误。
我有一个DOM对象,可能附加了进度条(http://docs.jquery.com/UI/Progressbar)。在另一个线程中,我正在尝试使用domObj.progressbar("option", "value")
访问选项。
如何确定该domObj
是否已附加progressbar
?
$("#myid").data("progressbar")
那么要使用这个:
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());
}
var hasProgressbar = ($(element).progressbar("instance") !== undefined);
根据这个讨论,检测一个小部件是否已经在元素上呈现的推荐方法如下:
var hasWidget = $('selector').is(':ui-widgetname');
var hasWidget = $( "selector-here" ).data().hasOwnProperty( "widget-name-here" );
if ( hasWidget )
{
// Put your awesome code here.
}
在我看来,这比检查 null 要好一点;如果它切换到 undefined,也是我的意见,它应该返回 undefined。
if (!progressBar)
)。对我来说,传递参数到 data()
并返回一个对象是有意义的。可能还可以检查它是否为对象类型,但我不知道,这似乎需要进行很多检查,而这个东西已经非常明确了... 只能看情况而定 ;) - jamiebarrow