2009-10-12 27 views
18

jQuery UIライブラリselectable()を使用しています。選択可能なリスト項目内のリンクは、右クリックして新しいウィンドウまたはタブで開くことによってのみ、クリック時に追跡されません。jQuery UI選択可能、リンクがクリックされていない

HTML

<ul class="selectable-list"> 
    <li> 
     <p>Visit Google.</p> 
     <a href="http://www.google.com">Google</a> 
    </li> 
    <li> 
     <p>Visit Apple.</p> 
     <a href="http://www.apple.com">Apple</a> 
    </li> 
    <li> 
     <p>Visit Microsoft.</p> 
     <a href="http://www.microsoft.com">Microsoft</a> 
    </li> 
</ul> 

CSS

.selectable-list li.ui-selected, .selectable-list li.ui-selected:hover { 
    background-color: #ccc; 
} 

JS

​​

答えて

35

selectable()メソッドには、cancelというオプションがあります。デフォルトでは ":input、option"ですが、選択可能なイベントにはアンカーを適用できません。あなたのコードの場合

$(document).ready(function() { 
    $(".selectable-list").selectable({ 
     cancel: 'a' 
    }); 
}); 
+0

希望のリンクにアクセスした後、選択可能なものを再開することは可能ですか? – windsound

+0

ああ、あなたはちょうど私の時間を節約しました。ありがとうございました! – Slavic

+2

私はこれを投票しました。しかし、遅延オプションが私のユースケースの方が良いと分かりました。 http://api.jqueryui.com/selectable/#option-delay – Doug

1

選択は、hrefの上のあなたのクリックイベントをオーバーライドしています。あなたはたぶんナビゲート機能に戻る必要があります。

しかし、それはあなたが撮影している奇妙な行動のようです。なぜ私は何かを選択してリンクをたどりたいのですが(おそらく新しいウィンドウにフォーカスしていると思います)、同時に何かをしたいのですか?

+0

はい、私は、選択可能なリンクの通常のクリック機能をオーバーライドしていることがわかります。問題はそれを修正するための最良の方法に関するいくつかの提案は何ですか? ユーザーはリスト内のアイテムを選択して、パーソナライズされたリストに保存します。 selectable()インタラクションは、これまでに選択されたアイテムを示します。また、リスト項目のリンクをたどることもできます。 – jerome

+0

さて、自動的にリンクをたどることは、おそらくUIの観点から望むものではないでしょう。そうであれば、.selectable()を呼び出した後、Jquery moreを使用してOnClick機能を拡張します。 しかし、リンクを選択(選択)した後にリンクをアクティブにする(または選択したままにする)ことをお勧めしますが、オンラインでリンクをクリックするとURL。 –

+0

私はUIの動作についてお勧めします。私が取り組んでいる実際のコードは、記事へのリンクと記事エントリの長い説明とその記事の日付スタンプが続くリスト項目で構成されています。したがって、李の中のコンテンツはより大きく、リンク自体ではなく選択可能な李です。おそらくその説明は私がしようとしていることを想像するのに役立ちます。リンク機能を保持(または再追加)しながら、liを完全に選択可能なままにする方法について具体的な推奨事項はありますか? – jerome

関連する問題