关于属性更改的jQuery事件

时间:2013-01-10 16:16:43

标签: jquery html

当divs data-page-index属性发生变化时,我需要运行一个函数

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

我尝试了change()函数,但这似乎只适用于输入字段

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

有另一种实现方法吗?感谢。

1 个答案:

答案 0 :(得分:3)

您似乎仍然需要操纵DOM来触发事件?如果是这样,您可以操纵隐藏输入的值,而不是操纵其他元素的数据属性。然后,您可以使用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');
  });

触发:

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