Trigger change event for add/remove
Trigger change event for add_widget / remove_widget methods and refactor the trigger into a method for uniformity
This commit is contained in:
parent
5b73939bc4
commit
187e13a244
2 changed files with 20 additions and 7 deletions
|
|
@ -158,7 +158,7 @@ to completely lock the widget.
|
|||
|
||||
### onchange(items)
|
||||
|
||||
Occurs when widgets change their position/size
|
||||
Occurs when adding/removing widgets or existing widgets change their position/size
|
||||
|
||||
```javascript
|
||||
var serialize_widget_map = function (items) {
|
||||
|
|
|
|||
|
|
@ -509,6 +509,21 @@
|
|||
$(window).resize(on_resize_handler);
|
||||
on_resize_handler();
|
||||
};
|
||||
|
||||
GridStack.prototype._trigger_change_event = function(forceTrigger) {
|
||||
var elements = this.grid.get_dirty_nodes();
|
||||
var hasChanges = false;
|
||||
|
||||
var eventParams = [];
|
||||
if (elements && elements.length) {
|
||||
eventParams.push(elements);
|
||||
hasChanges = true;
|
||||
}
|
||||
|
||||
if (hasChanges || forceTrigger === true) {
|
||||
this.container.trigger('change', eventParams);
|
||||
}
|
||||
};
|
||||
|
||||
GridStack.prototype._init_styles = function() {
|
||||
if (this._styles_id) {
|
||||
|
|
@ -638,9 +653,7 @@
|
|||
.attr('data-gs-height', node.height)
|
||||
.removeAttr('style');
|
||||
self._update_container_height();
|
||||
var elements = self.grid.get_dirty_nodes();
|
||||
if (elements && elements.length)
|
||||
self.container.trigger('change', [elements]);
|
||||
self._trigger_change_event();
|
||||
|
||||
self.grid.end_update();
|
||||
};
|
||||
|
|
@ -704,6 +717,7 @@
|
|||
this.container.append(el);
|
||||
this._prepare_element(el);
|
||||
this._update_container_height();
|
||||
this._trigger_change_event(true);
|
||||
|
||||
return el;
|
||||
};
|
||||
|
|
@ -722,6 +736,7 @@
|
|||
this._update_container_height();
|
||||
if (detach_node)
|
||||
el.remove();
|
||||
this._trigger_change_event(true);
|
||||
};
|
||||
|
||||
GridStack.prototype.remove_all = function(detach_node) {
|
||||
|
|
@ -846,9 +861,7 @@
|
|||
callback.call(this, el, node);
|
||||
|
||||
self._update_container_height();
|
||||
var elements = self.grid.get_dirty_nodes();
|
||||
if (elements && elements.length)
|
||||
self.container.trigger('change', [elements]);
|
||||
self._trigger_change_event();
|
||||
|
||||
self.grid.end_update();
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue