0

与えられたのは次のリストです(簡略化):

<ul id="items">
  <li PK1="1" PK2="abc">value1</li>
  <li PK1="2" PK2="abc">value2</li>
  <li PK1="3" PK2="def(1)">value3</li>
  <li PK1="4" PK2="def(1)">value4</li>
</ul>

<ul id="types">
  <li PK="abc">abc</li>
  <li PK="def(1)">def</li>
</ul>

ユーザーがリスト「タイプ」のリストアイテムにカーソルを合わせると、リスト「アイテム」の対応するアイテムが視覚的に変化する必要があります。

私が使用するセレクターは次のとおりです。

sCrit += '[pk2=\'' + $(this).attr('pk') + '\']';
$('ul#items li' + sCrit).addClass('Highlight');

実際の例では、属性 (確認済み) の () が原因で、listitem def にカーソルを合わせるとすぐにページがクラッシュします (100% CPU)。リスト「タイプ」の PK 値は変更できないため、オプションではありません。

jquery パーサーは、属性の値以外のものを探しているようです。これを機能させるにはどうすればよいですか?

4

2 に答える 2

0

属性の選択が正しくなかったと思います...コードは次のようにする必要があると思います..

 var sCrit = '[PK2="' + $(this).attr('PK')+'"]';
 $('#types li' + sCrit).addClass('Highlight');
于 2013-07-16T08:14:36.157 に答える
0

このコードを試してください

var sCrit= '';
$('ul#items li').hover(function(){
  sCrit = '[pk="' + $(this).attr('pk2') + '"]';     
  $('ul#types li' + sCrit).addClass('Highlight');
});

$('ul#items li').mouseleave(function(){
  $('ul#types li' + sCrit).removeClass('Highlight');
});

このデモをチェック

于 2013-07-16T08:19:26.610 に答える