おそらく私はこれを間違って/非効率的に行っていますが、これは私にとってはうまくいきません:
$(document).ready(function(){
$('li.taglink').click(function(){
alert('clicked tag');
$userClicked = $(this).html();
$('#holder').children('div').each(function () {
$('li.taglinkcurrent').removeClass('taglinkcurrent').addClass('taglink');
$x = $(this).attr("tags");
ele = $x.split(',');
for (var i = 0; i < ele.length; i++)
{
if ($userClicked == ele[i]) {$(this).show(495); break;}
else {$(this).hide(495);}
}
});
$(this).removeClass('taglink').addClass('taglinkcurrent');
});
$('li.taglinkcurrent').click(function(){
alert('clicked current');
$('li.taglinkcurrent').removeClass('taglinkcurrent').addClass('taglink');
$('li.taglink').show(495);
});
});
このページには、いくつかのタグを含む「tags」属性を持つdivが含まれています。また、順序付けされていないリストがあり、各li要素に個々のタグが含まれています。ユーザーがli要素の1つをクリックすると、そのタグを持つすべてのdivが表示され、それ以外はすべて非表示になります。ユーザーが同じli要素をクリックすると、すべてがもう一度表示されます。何が起こっているかをテストするためにアラートを追加しました。リンクをクリックするたびに、liのクラスが.taglinkcurrentに切り替えられていても、「クリックされたリンク」がポップアップ表示されます。私が間違ったことについて何か考えはありますか?