2013-01-10 10 views
11

muszę funkcję uruchomić, gdy atrybut div data-page-wskaźnik zmieniazdarzenie jQuery na zmianę atrybutu

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

Próbowałem funkcję zmiany(), ale wydaje się tylko do pracy z polami wejściowymi,

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

istnieje inny sposób osiągnięcia tego celu? Dzięki.

+0

Kiedyś to na drugi dzień, http://meetselva.github.io/attrchange/ całkiem przyzwoity plugin. – christoshrousis

+0

sprawdzić odpowiedź tutaj http://stackoverflow.com/questions/16781778/detecting-attribute-change-of-value-of-an-attribute-i-made –

Odpowiedz

3

Wydaje się, że trzeba jeszcze manipulować DOM aby wyzwolić zdarzenie? Jeśli tak, możesz manipulować wartością ukrytych danych wejściowych zamiast manipulować atrybutami danych innych elementów. Następnie można użyć change spust.

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

wyzwalania:

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