Edit this page

up.fragment up:fragment:keep
DOM event

This event is emitted before an existing element is kept during a page update.

Event listeners can call event.preventDefault() on an up:fragment:keep event to prevent the element from being persisted. If the event is prevented, the element will be replaced with a fragment from the response.

Preserving elements

Example

The following would only keep an <audio up-keep> element as long as it plays the same song (as identified by the tag's src attribute):

up.on('up:fragment:keep', 'audio', function(event) {
  if (element.getAttribute('src') !== event.newElement.getAttribute('src')) {
    // Preventing the event forces an update
    event.preventDefault()
  }
})

You may also define an up:fragment:keep listener in HTML using an [up-on-keep] attribute.


Event properties

event.preventDefault()
required

Prevents the fragment from being kept.

The fragment will be replaced with event.newFragment.

event.target
required

The fragment that will be kept.

event.newFragment
required

The discarded element.

event.newData
required

The data attached to the discarded element.

event.renderOptions
required

An object with render options for the current fragment update.