2012-03-20 5 views
0

を切り替えるFIDDLEあなたはフォークと私はクリックをトリガするために*キーを割り当てたいトリガードロップダウンリストから一つ一つをクリックしてください - プラスここでは、すべての

<a href="#" class="iconList" id="myDoc_aaa">...</a> 
<a href="#" class="iconListChecked" id="myDoc_bbb">...</a> 
<a href="#" class="iconList" id="myDoc_ccc">...</a> 

のリストを考えると

上で動作することができています順番に各リンクに、ctrl- *をクリックするとすべてをクリックします。リンクがクリックされたときに実行する必要のあるスクリプトがあるので、クラスを切り替える必要はありません。

質問:セレクタとその他のデータ属性を教えてもらえますか? CTRL-星

に一度*とすべての上一度に一つのリンクですから

ヒット*、最初のリンクがトリガー(およびスクリプトがiconListCheckedにクラスを変更)され、

ヒット*星が再び表示され、2番目のリンクがトリガーされます(チェックを外す)。

0 (それをオフ)

ヒット*と3分の1がトリガされ、

ヒット*は、私たちはラップと最初がトリガされ


CTRL-星とすべてチェックされていないリンク

ヒットがトリガされ

FIXED$(".iconList").trigger("click");


(私のバイオリンは、現在唯一の数値キーボードの*ハンドル - 私はそのhere用に別の質問があります)

答えて

1

http://jsfiddle.net/GtXMW/28/

// ... removed unedited part.. 

// Function to handle * 
function toggleFirst() { 
    var $candidates = $('.iconList,.iconListChecked'); 
    var $nottoggled = $candidates.not('.rw_toggled').first(); 
    if (!$nottoggled.length) { 
     // There is no non-toggled element any more. 
     // Remove class from all links 
     $candidates.removeClass('rw_toggled'); 
     $nottoggled = $candidates.first(); 
    } 
    // Add temporary class, trigger click 
    $nottoggled.addClass('rw_toggled').click(); 
    console.log("*"); 
} 
// Function to handle ctrl+* 
function toggleAll() { 
    console.log("ctrl+*"); 
    $(".iconList").click(); 
}  
$(document).ready(function() { 
    // Handle Ctrl+* and * 
    $(document).keypress(function(e) { 
     var $this = $(this); 
     if (e.which === 42) { // '*'.charCodeAt(0) === 42 
      if (!$this.data('rw_star_pressed')) { 
       $this.data('rw_star_pressed', true); 
       if (e.ctrlKey) { // Ctrl + * 
        toggleAll(); 
       } else {    // Just * 
        toggleFirst(); 
       } 
      } 
     } 
    }).keyup(function() { 
     $(this).removeData('rw_star_pressed'); 
    }); 

    // ... rest of your original code... 
}); 
+0

あまりにもいいです - ありがとう。そして、あなたは番号の行*を修正しました。ジレンマ - 受け入れる人 – mplungjan

+0

@mplungjan質問に最も完全な答えを出したものを選んでください。それがその目的です。 –

1

あなたはそれの一部を自分で解決してきたどのように、私はこれが残りの部分を支援すべきであると考えているようみる:http://jsfiddle.net/D4PhQ/4/

それはをクリックして次のものを追跡し、ページ内の次の aの要素を見つけるために .next()を使用するクラス nextを使用することにより

。探しているため

function toggleFirst() { 
    console.log("*"); 
    var n = $(".next").first(); 
    n.click(); 
    n.removeClass("next"); 
    n.nextAll("a").addClass("next"); 
    if (n.nextAll("a").length === 0) $("a").addClass("next"); 
} 
+0

感謝。 'n.next.addClassは関数ではありません。 ' – mplungjan

+0

ああ、正しく更新されていません。今すぐ修正します。 – ChrisPatrick

+0

@mplungjan修正しました。もう一度やり直してください。 – ChrisPatrick

関連する問題