0

我禁用任何输入并使用以下代码进行选择:

 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');  
   });
 });
4

3 回答 3

1

您缺少 click 函数的开/关括号:

   $(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');
     });
 });

因为您将绑定到点击函数链接到设置属性函数的末尾,所以您不需要多次运行每个循环。

于 2012-10-08T15:55:26.107 回答
0

我不认为像click 这样的鼠标事件适用于 Disabled Elements

如果你想要代码,可以这样写……但它不会在禁用元素上触发。

检查true而不是 disabled..

  $(function() {
    $('[id^="lbl"]').attr('disabled', true);

    $('[id^="lbl"]').on('click', function(){
        if( $(this).attr('disabled') === true){
              alert('DISABLED');
          }
    });
  });

您不需要在 $.each 循环内分配点击事件。

您可以使用id^=lbl直接分配事件,它检查 id 以 lbl 开头的所有元素。

于 2012-10-08T15:54:29.083 回答
0

如果您在要禁用的所有元素上放置一个类,这将容易得多。然后,您可以将其变成单线。

$(".disabled-element").prop("disabled", true);

要检查标签是否被禁用,您也不需要循环:

$(".disabled-element").click(function() {
    if ($(this).prop("disabled")) {
        alert("disabled");
    }
});

请注意,尽管disabled表单元素在大多数浏览器中不会引发点击事件,但标签应该没问题。

于 2012-10-08T15:55:09.910 回答