2

したがって、次のようなリストがあります。

<ul class="clearfix alignleft">
   <li id="cat-1"><a href="#All">All</a></li>
    <li id="cat-5"><a href="#Mobile">Mobile</a></li>
    <li id="cat-4"><a href="#Webdesign">Webdesign</a></li>
</ul>

したがって、ユーザーが をクリックするとmobile、属性 href を取得してスライスします'#'が、その後、ユーザーが をクリックすると、次webdesignのような文字列を作成する必要があるとしましょう.Mobile,.Webdesign..そのため、文字列に追加する必要があります....ユーザーがアンカーをクリックすると、クラスを追加します.clicked

これが可能であれば誰でもできますか?

4

2 に答える 2

3

Try like below,

Markup

<ul class="clearfix alignleft" id="trackClick"> <!-- added trackClick -->
   <li id="cat-1"><a href="#All">All</a></li>
    <li id="cat-5"><a href="#Mobile">Mobile</a></li>
    <li id="cat-4"><a href="#Webdesign">Webdesign</a></li>
</ul>

JS:

var tracker = [];
$('#trackClick').find('a').click( function () {
   tracker.push($(this).attr('href').replace('#', '.')); 
   //or tracker.push('.' + $(this).attr('href').substring(1));
});

console.log(tracker); // will print clicked href .Mobile,.Webdesign

DEMO

于 2012-05-14T19:22:07.293 に答える
1
var classStr = '';
$('ul a').on('click', function(e) {
  e.preventDefault();
  classStr += (classStr.length > 0 ? ', ' : '') + this.href.replace('#', '.');
});

You can put it in an array also @vega shows:

var classStr = [];
$('ul a').on('click', function(e) {
  e.preventDefault();
  // $.unique() to make sure that no multiple instance of href
  $.unique(classStr.push(this.href.replace('#', '.'))); 
});
console.log(classStr.join(', '));
于 2012-05-14T19:22:55.037 に答える