Je veux créer un nombre de div
s que je peux déplacer et redimensionner, et lier leurs width
, height
, etc. à un objet dans un tableau. Donc, si je crée six divs, j'ai six objets dans mon tableau, chaque objet ayant .width
, .height
, etc.Comment lier une largeur/hauteur div pour former des champs?
Je ne comprends pas très bien comment je lierais le texte d'entrée et d'étendue aux propriétés de l'objet tableau en utilisant knockout.js. Voici ma tentative:
var counter = 0;
var objects = [];
$(document).ready(function() {
dostuff($("#main")); // give it a target container div
});
function dostuff(target) {
counter++;
// create a div containing a span and an input that binds to knockout.js
target.append('<div id="d' + counter + '">width:<span id="d' + counter +
'" data-bind="text:objects[' + counter + '].width"></span>' +
'<input type="text" id="d' + counter +
'" data-bind="value:objects[' + counter + '].width"/></div>');
var a = $("#d" + counter);
a.css("position", "absolute");
a.css("width", "100px");
a.css("height", "100px");
a.css("background-color", "#" +
Math.ceil(Math.random()*9) + "0" +
Math.ceil(Math.random()*9) + "0" +
Math.ceil(Math.random()*9) + "0");
a.resizable({
stop: function (e, ui) {
this.childNodes[2].value = ui.size.width;
}
});
objects[counter] = { width: "100px", height: "100px",
top: "0px", left: "0px" };
ko.applyBindings(objects[counter]);
}
Comment pourrais-je obtenir le objects[1].width
de se lier à la valeur <input>
de la div d1?
Voici un exemple rapide d'une méthode permettant de relier le div via la liaison 'style' pour définir les valeurs de l'objet et utiliser la liaison' event' pour suivre les mises à jour en les faisant glisser ou redimensionner. http://jsfiddle.net/rniemeyer/a6Gjs/ –
Votre réponse était un coup de la réponse du parc. J'apprécie vraiment cela. –
LOL sans jeu de mots. –