leo*_*ora 6 jquery jquery-ui jqueryi-ui-buttonset
我有jQuery代码刷新按钮集:
$("#myRadio").buttonset('refresh');
Run Code Online (Sandbox Code Playgroud)
但我找到了一个用例,它在此行之前被调用:
$("#myRadio").buttonset();
Run Code Online (Sandbox Code Playgroud)
然后爆炸,因为它没有初始化.我想看看是否有办法确定这个buttonset()初始化是否已经发生,所以我可以在调用referh之前检查:
就像是:
if($("#myRadio").buttonsetIsInitialized())
{
$("#myRadio").buttonset('refresh');
}
Run Code Online (Sandbox Code Playgroud)
检查的正确方法是什么?
您可以按照 OP 中描述的方式通过buttonsetIsInitialized()向 jQuery 对象添加新方法来完成此操作:
$.fn.buttonsetIsInitialized = function () {
return this.hasClass('ui-buttonset');
};
Run Code Online (Sandbox Code Playgroud)
此方法将检查该类ui-buttonset(实例化添加到元素的)是否存在于元素类列表中。
if($("#myRadio").buttonsetIsInitialized()){
$("#myRadio").buttonset('refresh');
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
未初始化的情况:
$.fn.buttonsetIsInitialized = function () {
return this.hasClass('ui-buttonset');
};
Run Code Online (Sandbox Code Playgroud)
if($("#myRadio").buttonsetIsInitialized()){
$("#myRadio").buttonset('refresh');
}
Run Code Online (Sandbox Code Playgroud)
初始化案例:
$.fn.buttonsetIsInitialized = function () {
return this.hasClass('ui-buttonset');
};
if( $("#myRadio").buttonsetIsInitialized() ){
console.log('Refresh element');
}else{
console.log('Not initialized');
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>
<link href="https://code.jquery.com/ui/1.8.20/themes/base/jquery-ui.css" rel="stylesheet"/>
<div id="myRadio">
<input id="first" type="radio" value="1" name="steps"/><label for="first">First</label>
<input id="second" type="radio" value="2" name="steps"/><label for="second">Second</label>
</div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
482 次 |
| 最近记录: |