我有jQuery代码刷新按钮集:
$("#myRadio").buttonset('refresh');
但我找到了一个用例,它在此行之前被调用:
$("#myRadio").buttonset();
然后爆炸,因为它没有初始化.我想看看是否有办法确定这个buttonset()初始化是否已经发生,所以我可以在调用referh之前检查:
就像是:
if($("#myRadio").buttonsetIsInitialized()) { $("#myRadio").buttonset('refresh'); }
检查的正确方法是什么?
解决方法
Working fiddle.
您可以通过向jQuery对象添加新方法buttonsetIsInitialized()来执行与在OP中描述的方式相同的方式:
$.fn.buttonsetIsInitialized = function () { return this.hasClass('ui-buttonset'); };
此方法将检查类ui-buttonset(实例化添加到元素)是否存在于元素类列表中.
if($("#myRadio").buttonsetIsInitialized()){ $("#myRadio").buttonset('refresh'); }
希望这可以帮助.
未初始化的案例:
$.fn.buttonsetIsInitialized = function () { return this.hasClass('ui-buttonset'); }; if( $("#myRadio").buttonsetIsInitialized() ){ console.log('Refresh element'); }else{ console.log('Not initialized'); }
<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>
初始化案例:
$('#myRadio').buttonset(); //Initilized $.fn.buttonsetIsInitialized = function () { return this.hasClass('ui-buttonset'); }; if( $("#myRadio").buttonsetIsInitialized() ){ console.log('refresh element'); }
<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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。