2013-03-16 68 views
0

我正在尋找使用最新版本jQuery的Nivo滑塊。我需要將.live更改爲.on才能使其工作,但直接交換不起作用。我如何使它適用於jQuery 1.9?編輯Nivo Slider讓.live更改爲.on

if(settings.directionNav){ 
     slider.append('<div class="nivo-directionNav"><a class="nivo-prevNav">'+ settings.prevText +'</a><a class="nivo-nextNav">'+ settings.nextText +'</a></div>'); 

     $('a.nivo-prevNav', slider).live('click', function(){ 
      if(vars.running) { return false; } 
      clearInterval(timer); 
      timer = ''; 
      vars.currentSlide -= 2; 
      nivoRun(slider, kids, settings, 'prev'); 
     }); 

     $('a.nivo-nextNav', slider).live('click', function(){ 
      if(vars.running) { return false; } 
      clearInterval(timer); 
      timer = ''; 
      nivoRun(slider, kids, settings, 'next'); 
     }); 
    } 
+1

你可以只下載一個新的副本?我不確定他們什麼時候改變它,但可以自由地對此進行「查找」:http://demo.dev7studios.com/nivo-slider/wp-content/plugins/nivo-slider/scripts/nivo- slider/jquery.nivo.slider.pack.js?ver = 3.5.1 - 我可以向你保證,'.live()'不存在。 – ahren 2013-03-16 13:40:09

+0

我去了網站,它說jQuery 1.7和更高,所以我認爲它仍然存在。 – 2013-03-16 13:41:09

回答

2

$('{element_identifier'}).live(fn)相當於$(document).on('evt', '{element_identifier}', fn),所以這裏的交換我會怎麼做:

if(settings.directionNav){ 
     slider.append('<div class="nivo-directionNav"><a class="nivo-prevNav">'+ settings.prevText +'</a><a class="nivo-nextNav">'+ settings.nextText +'</a></div>'); 

     $(document).on('click', 'a.nivo-prevNav, a.nivo-directionNav', function(){ 
      if(vars.running) { return false; } 
      clearInterval(timer); 
      timer = ''; 
      vars.currentSlide -= 2; 
      nivoRun(slider, kids, settings, 'prev'); 
     }); 

     $(document).on('click', 'a.nivo-nextNav', function(){ 
      if(vars.running) { return false; } 
      clearInterval(timer); 
      timer = ''; 
      nivoRun(slider, kids, settings, 'next'); 
     }); 
    }