TL; DR;如何正确实现$('#radioBtn')。checkboxradio(“refresh”);没有jquery ui库?
我正在开发一个项目,并且需要单选按钮无法选择+点击表格行,就像单击单选按钮一样。
我遇到的问题是在设置checked / not checked属性后必须刷新单选按钮。如何在不依赖jquery ui的情况下做到这一点? 有趣的是,如果你在单选按钮上调用任何函数(不存在),它就会被刷新。
注意:我要求更新单选按钮视图以显示正确的检查状态,而不是设置收音机的已检查状态。
https://jsfiddle.net/8uno2ybf/5/
$(function() {
var inputClickHandler = function() {
var previousValue = $(this).attr('previousValue');
var name = $(this).attr('name');
if (previousValue == 'checked') {
$(this).prop('checked', false);
$(this).attr('previousValue', false);
$(this).checkboxradio("refresh"); //This refreshes it for some reason
} else {
$("input[name=" + name + "]:radio").attr('previousValue', false);
$(this).attr('previousValue', 'checked');
}
};
$("input[type='radio']").click(inputClickHandler);
$('.monitored_table tbody tr').click(function(event) {
if (event.target.type !== 'radio') {
$(':radio', this).trigger("click");
}
});
console.log("OnLoad");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class="monitored_table">
<tr>
<td>Text1</td>
<td>
<input type="radio" name="group1" value="1">
</td>
</tr>
<tr>
<td>Text2</td>
<td>
<input type="radio" name="group1" value="2">
</td>
</tr>
<tr>
<td>Text3</td>
<td>
<input type="radio" name="group1" value="3">
</td>
</tr>
</table>
答案 0 :(得分:0)
你不需要为此目的使用Jquery UI,Jquery就足够了。然而;您正在尝试执行一个不存在的函数,该函数会破坏您的代码流。您应该使用this函数检查函数是否存在。因此;一旦javascript代码失败,就可以在代码块中刷新