2014-09-26 2 views
1

У меня есть 2 divs на моем сайте. Один с атрибутом clickDisabled и другим без. Я пытаюсь нажать на div, и он должен показывать предупреждение только в том случае, если его атрибут имеет значение clickDisabled. Но в моем случае оба клика на div показывают предупреждение. Как ограничить отображение предупреждающего сообщения только одним div с атрибутом clickDisabled?Нажатие на div запускает все элементы с именем класса

<div> 
     <img title="You cannot edit." class="editMe" src="/Content/Images/edit.png" clickdisabled="disable"> 
</div> 

    <div> 
     <img title="You cannot edit." class="editMe" src="/Content/Images/edit.png"> 
    </div> 


if ($('.editMe').attr('clickdisabled') == 'disable') { 
     alert('warning'); 
     return false; 
    } 
+1

Используйте 'clickdisabled' вместо' clickDisabled' в Jquery – Newtt

ответ

2

использование $(this) вместо $('.editMe'), потому что ниже оператор всегда будет возвращать истинное

if ($('.editMe').attr('clickdisabled') == 'disable') 

, потому что он проверяет для каждого элемента, который имеет класс editMe. Таким образом, он вернет true, как только он найдет первый элемент, даже когда вы нажмете второй.

Вот код, который вы можете попробовать с

$('.editMe').click(function() { 
    if ($(this).attr('clickdisabled') == 'disable') { 
     alert('warning'); 
     return false; 
    } 
}); 

Js Fiddle Demo