I created my first jQuery plugin today. This plugin will deselect all select option elements after a given timeout when checking an associated checkbox which will in our plugin
represent the $(this) object. It can be utilized when you use the
data-target attribute. The
data-target attribute will automatically select the first option when
the checkbox is unchecked. This plugin, however - deselects all options after a given timeout of milliseconds using the setTimeout function. It will keep a pointer to the select
object by applying the $() function on a passed in DOM element identifier.
Example usage:
<script type="text/javascript">
$(function() {
$("[name=@SearchParametersDataContract.SomeDOMElementCheckbox]").deselectAfterSelectCheckbox("#@SomeDOMElementSelect",100);
});
</script>
The jQuery plugin looks like this:
<script type="text/javascript">
$.fn.deselectAllAfterUnselectCheckbox= function(targetSelect, timeout) {
$(this).on("click",
function() {
if (timeout === null || timeout == undefined)
timeout = 50;
$targetSelect = $(targetSelect);
if (this.checked === false) {
setTimeout(function() {
$targetSelect.children("option").attr("selected", false);
}, timeout)
};
});
}
</script>