Ciao ragazzi,
ho scritto una classe di cui riporto il pezzo di codice incriminato:
Se potete notare la riga: div.setAttribute("onClick", "Keyboard.insert_char(this.innerHTML)"); non funzionerà mai perchè ovviamente la classe Keyboard la definisco dentro a una funzione, ed anche se definisco var Keyboard = {}; al di fuori di essa non funziona.codice HTML:<script> (function() { "use strict"; /* [...] */ var Keyboard = { /* [...] */ get_tooltip : function() { var _this = this , value = this.innerHTML , position = Keyboard.get_position(this); if (special_chars_1.indexOf(value) == -1 && special_chars_2.indexOf(value) == -1) { (!Keyboard.caps_lock ? lower_chars : upper_chars).forEach(function(v, k, a) { if (v.length > 1 && value == v[0]) { var left = 0 , i = 0; for (; i < v.length; i++) { var div = document.createElement("div"); div.setAttribute("id" , "uniq_" + i); div.setAttribute("class" , "prova prova2"); div.setAttribute("style" , "top: " + (position.top - 42) + "px; left: " + (position.left + left) + "px;"); div.setAttribute("onClick", "Keyboard.insert_char(this.innerHTML)"); div.innerHTML = v[i]; document.body.appendChild(div); Keyboard.tooltip[i] = new Array(); Keyboard.tooltip[i][0] = i; Keyboard.tooltip[i][1] = _this; left += 40; } } }); } }, insert_char : function(add) { var password = document.getElementById('password'); password.value = password.value + add; }, /* [...] */ } </script>

Rispondi quotando