evento jQuery sulla modifica dell’attributo

Ho bisogno di una funzione da eseguire quando cambia un attributo di data-page-index div

var active = $('.swipeview-active'), dpi = parseInt(active.attr('data-page-index')), left = $('[data-page-index="' +prev+ '"]').children("img").eq(0), right = $('[data-page-index="' +next+ '"]').children("img").eq(0); $(active.attr('data-page-index')).change(function(){ right.clone( true ). css({'z-index': 5}). fadeIn(2000).appendTo('#right'); left.clone( true ). css({'z-index': 5}). fadeIn(2000).appendTo('#left'); }); 

Ho provato la funzione change () ma sembra funzionare solo con i campi di input,

  $(active.attr('data-page-index')).change(function(){ 

c’è un altro modo per raggiungere questo? Grazie.

Sembra che tu debba ancora manipolare il DOM per triggersre l’evento? In tal caso, puoi manipolare il valore di un input nascosto invece di manipolare gli attributi dei dati di altri elementi. Quindi puoi usare il grilletto del change .

  var active = $('.swipeview-active'), dpi = parseInt(active.attr('data-page-index')), left = $('[data-page-index="' +prev+ '"]').children("img").eq(0), right = $('[data-page-index="' +next+ '"]').children("img").eq(0), dpiInput = $('.swipeview-active input:hide'); dpiInput.change(function(){ right.clone( true ). css({'z-index': 5}). fadeIn(2000).appendTo('#right'); left.clone( true ). css({'z-index': 5}). fadeIn(2000).appendTo('#left'); }); 

trigger:

 $('.swipeview-active input:hide').val(1).trigger('change');