禁用元素上的按钮小部件错误
button widget error on disabled element
我为jquery编写了一个插件,它将jquery ui按钮小部件样式应用于复选框(基于这个答案)。
function checkbox() {
$.each($(".inp-checkbox"), function(index, value) {
$("label[for='" + $(value).attr('id') + "']").remove();
$(value).prop({"type": "checkbox" })
.val(false)
.after($("<label />").attr({ for: $(value).prop('id')}))
.button({text: false })
.click(function (e) {
alert("hello");
});
});
}
在大多数情况下,这与预期的一样有效。然而,我发现当我第二次调用该函数时(如果我启用或禁用了复选框,则需要重新创建它),按钮标签没有正确创建。
标签标记应该是这样的(第一次我"扣"复选框时是这样做的:
<label for="chkTesting" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-disabled ui-state-disabled ui-button-text-only" role="button" aria-disabled="true">
<span class="ui-button-text"></span>
</label>
然而,在第二轮之后,情况看起来是这样的:
<label for="chkTesting"></label>
在创建新标签之前,我添加了一些代码来删除旧标签,但没有什么不同。据我所知,代码中没有语法错误或异常。
知道是什么原因造成的吗?
这是一把小提琴在演示这个问题。
由于它已经创建,您需要首先删除按钮,执行类似"
function checkbox() {
$(".inp-checkbox").after.button('remove');
$.each($(".inp-checkbox"), function(index, value) {
$(value).prop({"type": "checkbox" })
.val(false)
.after($("<label />").attr({ for: $(value).prop('id')}))
.button({text: false })
.click(function (e) {
alert("hello");
});
});
}
在阅读了JQuery UI Button API文档后,我意识到我可以使用"按钮"小部件的"刷新"功能来刷新复选框(即按钮)的视觉外观,而无需重新创建按钮。
value.button("refresh");
这很好,我下次肯定会先检查API文档:p
相关文章:
- 如果用户输入的长度小于最小长度,则显示错误消息
- 最小化js时出现Gulp错误
- 如何仅在存在最小值和最大值时才显示错误消息
- 我需要帮助查找我的JavaScript小游戏中的错误(三个我没有得到的错误)
- 最小化httpInterceptor AngularJS$注入器错误
- Angular小部件中的Angular Grid返回错误:[$injector:unp]未知提供程序:
- Grunt文件Concat和css最小错误
- Java小程序——今天是不是一个错误的选择
- 比较字符串,如果存在小的拼写错误,则返回 true
- 将 JavaScript 添加到 Freeboard 小部件插件时出现类型错误
- jquery 超大小显示 IE 错误
- event.target 中未在 Firefox 中定义,在 IE 中出现小错误
- jQuery UI 最小脚本错误
- 禁用元素上的按钮小部件错误
- Asp.Net4 Javascript/jquery最小化错误
- django压缩器的最小化错误
- Angular UI-Router最小化错误-如何将Resolve语法改为基于字符串注入
- JavaScript数学.最小返回错误的值
- 如何在Gulp上解决这个最小化错误
- 在香芹最小检查错误信息的特殊效果,Rails 4