2013-08-27 2 views
8

У меня есть какой-то глупый вопрос, и я думаю, что я уже знаю ответ, но мне бы хотелось узнать у кого-то, у кого больше знаний jquery, чем у меня. У меня есть раскрывающийся список, и я хотел бы знать, могу ли я проверить, было ли нажато или изменено ddl. ПримерПроверьте, был ли элемент нажат или изменен.

If($('#ddl').click() || $('#ddl').on('change'){ 
    //do something. 
} 
+0

установить глобальный флаг в false, а внутри обоих обработчиков событий установлено значение true: – Rooster

ответ

13

Вы можете связать щелчок и изменить обработчик событий к элементу и установите флаг:

$('#ddl').on('click change', function() { 
    $(this).data('clicked', true); 
}); 

// later 
if ($('#ddl').data('clicked')) { 
    // ... 
} 

Конечно, если вы хотите, чтобы выполнить действие, когда элемент будет нажат или изменен, поставить этот код непосредственно в обработчике событий. В этом случае вам не нужен флаг.

+0

+1, на 30 секунд быстрее! –

+0

Спасибо, что работал так, как я хотел. –

2

Это обеспечивает хорошую ссылку о том, как написать функцию, чтобы захватить изменения - http://api.jquery.com/change/

$('#ddl').change(function() { 
    // do something 
}); 
+0

Ссылка содержит много полезных советов. Ценить это. –

0

Вы можете просто сделать это:

$("#Element").click(function() { 
 
    alert('This element has been clicked'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div id="Element"> 
 
    Click me and test if it works 
 
</div>

+0

Сдача кода не дает хороших ответов. Вы должны объяснить *, как * и * почему * это решает их проблему. Я рекомендую читать: «[Как написать хороший ответ?]] (Http://stackoverflow.com/help/how-to-answer) –

Смежные вопросы