Ok, ich habe mich also umgeschaut, aber keine definitive Antwort gefunden. Also, ich habe ein HTML-Tag wie folgt:Ändern Sie die Parameter innerhalb eines Attributs "Datenparameter"
<input type="checkbox" data-parameters='{"uploadZone":0,"left":27,"top":225,"degree":0,"price":0,"replace":"togglePhone","originX":"left","originY":"top","fill":"#166fc4","opacity":1,"removable":0,"draggable":0,"rotatable":0,"resizable":0,"zChangeable":0,"topped":0,"autoSelect":0,"boundingBoxMode":"inside","fontFamily":"Open Sans","fontWeight":"normal","fontStyle":"normal","textDecoration":"normal","textAlign":"left","fontSize":16,"maxLength":0,"maxLines":0,"lineHeight":1,"strokeWidth":1,"editable":0,"curvable":0,"curved":0,"curveSpacing":10,"curveRadius":80,"curveReverse":0,"textBox":0,"customAdds": {}}' name="toggle_element" class="toggle-element" />
Dieses mit einem Plugin verwendet werden soll, genannt „fabric.js“. Jetzt ist es mein Ziel, nur den "obersten" Parameter dieses Attributs zu manipulieren. Ich rufe die Parameter:
var getParameters = $(this).data('parameters');
Ich habe versucht, den obersten Wert als solche zu ändern:
$(document).on("change", ".toggle-element", function() {
var getParameters = $(this).data('parameters');
getParameters.top = 10;
alert(getParameters.top);
});
Der Alarm den richtigen Wert zeigt, dass ich geschrieben, aber aus irgendeinem Grund, auf der Leinwand, es ist immer noch 225 (wie das Beispiel, das ich oben gepostet habe). Was versuche ich zu erreichen, mache ich es einfach falsch?
Vielen Dank im Voraus :)
******** EDIT ********
Dank empiric der und Antworten Kostas Pelelis, konnte ich dies, um herauszufinden, . Was ich also vermisste war, die Parameter wieder einzustellen, nachdem ich die Änderung vorgenommen hatte. So würde der Code sein:
Das fügte den neuen Parameter hinzu, den ich benötigte und wie erwartet arbeitete. Ich habe sogar versucht, einige andere Parameter zu manipulieren, und das hat auch funktioniert. Im Grunde genommen musste ich lediglich den Parameterwert ändern und dann die Parameterwerte erneut hinzufügen. Dies wird auf die oben angegebenen Werte aktualisiert. Als ich den obigen Code zum ersten Mal ausprobierte, machte ich den Fehler, die Variable getParameters korrekt zu referenzieren. Also stellen Sie sicher, dass Sie sehr genau angegeben haben, welches Element Sie manipulieren.
Haben auf fabric.js gearbeitet, aber ich denke, Sie haben fabric.js wieder Last für den aktualisierten Wert zu machen. Sehen Sie sich die Dokumentation an und prüfen Sie, ob ein Ereignis wie onChange oder load() vorhanden ist, und feuern Sie es ab, sobald Sie den obersten Wert geändert haben.Ihr Code sieht gut aus für mich – bipen
nach dem Ausführen von 'getParameters.top = 10;' müssen Sie das Datenattribut erneut festlegen. Randnotiz: Die Funktion '.data()' wird das Dom selbst nicht aktualisieren. – empiric
Vielen Dank für Ihre Antwort. @empiric: was zu dyou bedeutet das Datenattribut wieder setzen? Meinst du wie .data ('parameter', newValue)? –