2013-01-10 13 views
11

ich eine Funktion ausführen muß, wenn ein divs Daten-Seite-Index-AttributjQuery Ereignis auf Attributänderung

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'); 
    }); 

verändert habe ich versucht, die Änderung() Funktion, aber das scheint nur mit Eingabefeldern zu arbeiten,

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

gibt es eine andere Möglichkeit, dies zu erreichen? Vielen Dank.

+0

ich verwendet, um dieses neulich, http://meetselva.github.io/attrchange/ ziemlich anständig Plugin. – christoshrousis

+0

Überprüfen Sie die Antwort hier http://stackoverflow.com/questions/16781778/detecting-attribute-change-of-value-of-an-attribute-i-made –

Antwort

3

Es scheint, dass Sie noch das DOM manipulieren müssen, um das Ereignis auszulösen? In diesem Fall können Sie den Wert einer ausgeblendeten Eingabe ändern, anstatt die Datenattribute anderer Elemente zu bearbeiten. Dann können Sie den Trigger verwenden.

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'); 
    }); 

Auslöser:

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