Jquery 单击禁用的标记时发出警报
我禁用任何输入并使用此代码选择:Jquery 单击禁用的标记时发出警报,jquery,Jquery,我禁用任何输入并使用此代码选择: var elements = ['#lbl1' ,'#lbl2','#lbl3','#lbl4','#lbl5','#lbl6','#lbl7']; jQuery.each(elements, function(element) { $(elements[element]).attr('disabled', true); }); 现在,我想知道如果用户单击用户的禁用标签警报: var elements = ['#lbl1' ,'#lbl2
var elements = ['#lbl1' ,'#lbl2','#lbl3','#lbl4','#lbl5','#lbl6','#lbl7'];
jQuery.each(elements, function(element) {
$(elements[element]).attr('disabled', true);
});
现在,我想知道如果用户单击用户的禁用标签警报:
var elements = ['#lbl1' ,'#lbl2','#lbl3','#lbl4','#lbl5','#lbl6','#lbl7'];
jQuery.each(elements, function(element) {
$(elements[element]).click(function{
if ( $(elements[element]).attr() == 'disabled') alert('DISABLED');
});
});
我认为像点击这样的鼠标事件对禁用的元素不起作用 如果你想要代码,可以这样写。。。但它不会对禁用的元素开火 检查是否为真而不是禁用
$(function() {
$('[id^="lbl"]').attr('disabled', true);
$('[id^="lbl"]').on('click', function(){
if( $(this).attr('disabled') === true){
alert('DISABLED');
}
});
});
您不需要在$.each循环内分配click事件
您可以使用id^=lbl直接分配事件,它检查id以lbl开头的所有元素。如果您在所有要禁用的元素上放置一个类,这将非常容易。然后你可以把它变成一行
$(".disabled-element").prop("disabled", true);
要检查标签是否已禁用,则不需要循环:
$(".disabled-element").click(function() {
if ($(this).prop("disabled")) {
alert("disabled");
}
});
请注意,尽管禁用的
表单元素在大多数浏览器中不会引发单击事件,但标签应该是可以的。您缺少单击函数的开/关括号:
$(elements[element]).click(function() {
为什么不把这两种功能结合起来呢
var elements = ['#lbl1' ,'#lbl2','#lbl3','#lbl4','#lbl5','#lbl6','#lbl7'];
jQuery.each(elements, function(element) {
$(elements[element]).attr('disabled', true).click(function(){
alert('DISABLED');
});
});
因为您将绑定到单击函数链接到set attribute函数的末尾,所以不需要多次运行each循环 你将他的所有元素设置为禁用,而不是检查它是否禁用。他在第一个循环中这样做。在第二个循环中,它们都应该被禁用。。也许这就是他想要的。。我甚至不确定这段代码是否对我有用:$('[id^=“lbl”]').prop(“disabled”,true)$('[id^=“lbl”]')。单击(function(){if($(this).prop(“disabled”){alert(“disabled”);})代码>我正在使用jquery-1.8.2,但是.prop属性在我的代码中不起作用。当字段被禁用时,单击事件现在将不起作用,$('[id^=“lbl”]')。在('click',function(){
对我不起作用,为什么?