给出以下列表(简化):
<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>
当用户将鼠标悬停在列表'类型'的列表项上时,列表'items'中的相应项目需要进行直观的更改。
我使用的选择器是:
sCrit += '[pk2=\'' + $(this).attr('pk') + '\']';
$('ul#items li' + sCrit).addClass('Highlight');
在实际示例中,一旦我将鼠标悬停在listitem def上,页面就会崩溃(100%CPU),因为属性中的()(已确认)。 列表'类型'的PK值无法更改,因此不能选择。
似乎jquery解析器正在寻找除属性值之外的其他东西。我能做些什么才能做到这一点?
答案 0 :(得分:0)
您认为属性选择不正确我认为...我认为您的代码需要像这样..
var sCrit = '[PK2="' + $(this).attr('PK')+'"]';
$('#types li' + sCrit).addClass('Highlight');
答案 1 :(得分: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');
});
选中此demo