2

.prev()変数をまたはのいずれかに設定したい.next()、たとえば:

   if(x == y)
       var shift = '.prev()';
   else
       var shift = '.next()';

   $("li.active").removeClass('active')shift.addClass('active');

おそらくそれで動作させることができますがeval()、セキュリティ上の危険があります。

明らかな何かが欠けていますか?

4

1 に答える 1

5

オブジェクトのすべてのプロパティは、ブラケット表記[spec]を使用してアクセスできます。
foo.bar()と同じfoo['bar']()です:

if(x == y)
   var shift = 'prev';
else
   var shift = 'next';

// or a shorter and nicer way: 
// var shift = x == y ? 'prev' : 'next';

$("li.active").removeClass('active')[shift]().addClass('active');
于 2013-01-09T00:09:57.877 に答える