关于属性更改的jQuery事件

Tim*_*son 12 html jquery

我需要一个函数来在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');
    });
Run Code Online (Sandbox Code Playgroud)

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

    $(active.attr('data-page-index')).change(function(){    
Run Code Online (Sandbox Code Playgroud)

有另一种方法来实现这一目标吗?谢谢.

小智 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');
  });
Run Code Online (Sandbox Code Playgroud)

扳机:

$('.swipeview-active input:hide').val(1).trigger('change');
Run Code Online (Sandbox Code Playgroud)