2014-01-23 19 views
0

JavaScript这里假设根据两个不同的选择器来触发这些函数。不知道如何使用选择器。我需要基于具有相同名称的选择器区分slideLeft和slideRight。基于两个不同的选择器触发一个函数jquery

的JavaScript低于

function slideRight($el){ 
    $el.css('marginLeft', '-70px').animate({marginLeft: '+=70px'},{ duration: 500, queue: false }).fadeIn(500, false).removeClass('hidden'); 
} 

function slideLeft($el){ 
    $el.css('marginright', '-70px').animate({marginright: '+=70px'},{ duration: 500, queue: false }).fadeIn(500, false).removeClass('hidden'); 
} 

function checkAudioCue(){ 
    try { 
     var num = Math.floor(curTime); 
     var entryNum; 
     if(audioCues[""+num]){ 
      entryNum = audioCues[""+num]; 
     } 

     if (entryNum != undefined){ 
      var $el = $('.hidden[data-cuenum="' + entryNum + '"]'); 
      /*$('.hidden[data-cuenum="' + entryNum + '"]').removeClass('hidden'); */ 
      slideRight($el); 
     } 
    } catch(error){} 
} 

下面是HTML

<div class="hidden slideRight" data-cuenum="2"> 
    <h4>TEXT</h4> 
    <div class="hidden slideRight" data-cuenum="3"> 
     <p><strong>Text:</strong> Text</p> 
     <span class="color2"> 
      <ul> 
       <li>Text </li> 
      </ul> 
     </span> 
    </div> 

回答

0

使用另一个参数为你的函数:

function slide($el, dir){ 
    var prop = 'margin'+dir.charAt(0).toUpperCase()+dir.slice(1), 
     anim = {}; 
    anim[prop] = '+=70px'; 
    $el.removeClass('hidden') 
     .css(prop, '-70px') 
     .animate(anim, { duration: 500, queue: false }) 
     .fadeIn(500, false); 
} 

slide($('.hidden[data-cuenum="' + entryNum + '"]'), "right"); 
相关问题