Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σας παιδιά!

 

Θέλω να χρησιμοποιήσω την jscolor αλλά αντιμετωπίζω το εξής πρόβλημα

Το/τα πεδία που θα έχουν την κλαση "color" δεν υπάρχουν εξαρχής και τα δημιουργώ δυναμικά μέσω ενός κουμπιού (javascript) με αποτέλεσμα να δουλεύουν ως απλά textboxes και όχι ως color picker.

 

Καταλάβατε τι εννοώ;

Αν ναι μπορεί κάποιος να με βοηθήσει;

Δημοσ. (επεξεργασμένο)

Πριν μου δώσεις αυτή την απάντηση είχα προσθέσει στον κώδικα αυτό new jscolor.color($('.color'), {}); αλλά δεν είδα διαφορά...

 

ορίστε και ο κώδικας δημιουργίας των inputs

 

error στο console "TypeError: valueElement.setAttribute is not a function" μέσα στο jscolor.js

$("#set_perc").click(function(){
		var x = parseInt($("#num_of_colors").val());
		if(x > 1){
			var div_percents = "<table>";
			for(var i=0; i<x; i++){
				if((i+1)===1){ //το input με το προκαθορισμένο χρώμα
					div_percents += "<tr><td>"+ (i+1) + ". Ποσοστό: από <input type='text' disabled='disabled' class='a' value='0.00'/>% έως:<input type='text' id='textbox"+(i+1)+"' class='percents' name='percents[]' />% </td><td>	Χρώμα: <input type='text' class='colors color {hash:true}' name='colors[]' value='#000000' disabled='disabled' /></td></tr>";
				}else if((i+1)===x){ //το τελευταίο input
					div_percents += "<tr><td>"+ (i+1) + ". Ποσοστό: από <input type='text' disabled='disabled' id='d_textbox"+(i)+"' />% </td><td> Χρώμα: <input type='text' class='colors color {hash:true}' name='colors[]' /></td></tr>";
				}else{ //όλα τα υπόλοιπα μεταξύ του πρώτου και του τελευταίου
					div_percents += "<tr><td>"+ (i+1) + ". Ποσοστό: από <input type='text' disabled='disabled' id='d_textbox"+(i)+"' />% έως:<input type='text' id='textbox"+(i+1)+"' class='percents' name='percents[]' />% </td><td> Χρώμα: <input type='text' class='colors color {hash:true}' name='colors[]' /></td></tr>";
				}
			}
			div_percents += "</table>";
			$("#percents").html(div_percents);
			new jscolor.color($('.color'), {});
			return false;
		}else{
			alert("Το πλήθος πρέπει να έιναι μεγαλύτερο του 1");
			return false;
		}
	});

*********Δούλεψε!

Άλλαξα το new jscolor.color($('.color'), {}); σε jscolor.init(); και έγινε αυτό που έπρεπε :)

Το πρόβλημα είναι ότι δεν καταλαβαίνω από που και ως που init()... περιέχεται μέσα στην jscolor;

Επεξ/σία από rafinos
Δημοσ.

κανε new μετα την προσθηκη του element.

Βγάζει ακριβώς το ίδιο error :)

Τα elements δημιουργούνται εδώ

$("#percents").html(div_percents);

άρα το new είναι στη σωστή θέση.

 

To θέμα είναι ότι δούλεψε με την init() όπως προανέφερα απλά δε βρήκα κάπου στο documentation της jscolor να υπάρχει init()... το βρήκα ως απάντηση στο stackoverflow.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...