javascript - one listener for all child elements in the DOM tree -
how have 1 keypress event can triggered child element in dom tree.
for example have this:
<table> <tr> <td><input type="text" id="col_1" value="1"/></td> </tr> <tr> <td><input type="text" id="col_2" value="2"/></td> </tr> <tr> <td><input type="text" id="col_3" value="3"/></td> </tr> </table> so example when user changes value on id=col_3 , on id=col_2 how can distinguish input triggered event? need able save , input id , value of in array can read later on.
you can try using jquery .on method,
$("table").on("keypress", "input", function(event){ alert($(this).attr("id"));// gets input id alert($(this).val());// gets input value }); this code take care of inputs inside <table> tag.
if want not execute listener on every keystroke, giving sometime(3 sec) breath, try code -
var timeoutreference; $("table").on("keypress", "input", function(event){ var el = this; // copy of object further usage if (timeoutreference) cleartimeout(timeoutreference); timeoutreference = settimeout(function() { donetyping.call(el); }, 3000); }); $("table").on("blur", "input", function(event){ donetyping.call(this); }); function donetyping(){ var el = this; // want execute if timer pending if (!timeoutreference){ return; } // reset timeout continue on code timeoutreference = null; // // code execute here // alert('this executed when user done typing.'); alert($(el).attr("id"));//id alert($(el).val());//value }
Comments
Post a Comment