我有一个非常优雅的解决方案,使用buttonsetcreate
按钮集的内置事件。或者,您可以使用按钮集的回调事件。这里的所有描述https://api.jqueryui.com/buttonset/#event-create
此事件将允许您在按钮集启动时,您可以使用它做任何您想做的事情。无需一次又一次地检查它是否是 init 。只需将您的代码放入event
并完成。
小提琴
https://jsfiddle.net/ergec/wk9ew1bp/
html
<fieldset>
<legend>Favorite jQuery Project</legend>
<div id="radio">
<input type="radio" id="sizzle" name="project">
<label for="sizzle">Sizzle</label>
<input type="radio" id="qunit" name="project" checked="checked">
<label for="qunit">QUnit</label>
<input type="radio" id="color" name="project">
<label for="color">Color</label>
</div>
</fieldset>
<button id="initbuttonset">Init</button>
<button id="checkbuttonset">Check</button>
js
var isbuttonsetinit = false;
$("#radio").on("buttonsetcreate", function(event, ui) {
isbuttonsetinit = true;
alert("buttonset init");
});
$("#initbuttonset").click(function() {
$("#radio").buttonset();
});
$("#checkbuttonset").click(function() {
alert(isbuttonsetinit);
});
js(替代)
var isbuttonsetinit = false;
$("#initbuttonset").click(function() {
$("#radio").buttonset({create: function( event, ui ) {
isbuttonsetinit = true;
alert("buttonset init");
}});
});
$("#checkbuttonset").click(function() {
alert(isbuttonsetinit);
});