Tengo un formulario simple, donde cada línea consta de 3 campos de entrada. en uno de esos campos, uso jscolor.js (el campo tiene un class="color"
y por lo tanto une el JS).Los elementos recién agregados usando delegate() no vincularán jscolor.js
Sin embargo, cuando agrego líneas nuevas usando jQuery's delegate()
, el campo de entrada no vincula el JS y la funcionalidad esperada no está allí. http://jsfiddle.net/alexwald/qARzP/
<script>
var line = '<li class="form_line" id="line">
<span>
<label for="item">Item:</label>
<input type="text" required="required" placeholder="what item is this?" id="item" name="item[]>
</span>
<span>
<label for="amount">Amount: </label>
<input required="required" type="number" id="amount" name="amount[]>
</span>
<span>
<label for="color">Color: </label>
<input type="text" required="required" class="color {pickerClosable:true, hash:true ,pickerFace:3,pickerBorder:0}" id="color" name="color[]">
</span>
</li>';
$(document).ready(function() {
$("form").delegate(".add", "click", function(){
$('ul').append(line);
}); // end of adding
}); //end of main func
</script>
Creo que el problema está en:
- cómo definir la variable
line
, o - estoy usando un selector impropia con
.delegate
, por lo que debería ser algo más y noform
..?
Cualquier ayuda muy apreciada.
1. sí, no me di cuenta de esto a pesar de que jslint me seguía gritando desde dentro de la consola :) lo eliminé ahora. 2. porque probablemente no entendí muy bien el significado de delegate(). Tenía una tendencia a usarlo cada vez que se agregaban nuevos elementos. Tengo una mejor idea ahora. 3. Sabía que esto podría haber sido el culpable. muchas gracias por señalar! – AlexW
estoy tratando de hacer esto mismo pero cuando trato de la línea "nueva jscolor.color" me sale el siguiente error: TypeError: valueElement.setAttribute no es una función /Scripts/jscolor/jscolor.js Línea 909 – chill182