1

我有一个带有类似于此的标记的项目列表:

<article class="day past">
  <div class="schedule schedule-261 event">
    <h4>Title</h4>
    <p>Lorem ipsum...</p>
  </div>
</article>
<article class="day past">
  <div class="schedule schedule-283 event">
    <h4>Title</h4>
    <p>Lorem ipsum...</p>
  </div>
</article>
<article class="day past">
  <div class="schedule schedule-290 event">
    <h4>Title</h4>
    <p>Lorem ipsum...</p>
  </div>
</article>
<article class="day past">
  <div class="schedule schedule-261 event">
    <h4>Title</h4>
    <p>Lorem ipsum...</p>
  </div>
</article>
<article class="day past">
  <div class="schedule schedule-290 event">
    <h4>Title</h4>
    <p>Lorem ipsum...</p>
  </div>
</article>
<article class="day past">
  <div class="schedule schedule-300 event">
    <h4>Title</h4>
    <p>Lorem ipsum...</p>
  </div>
</article>
<article class="day past">
  <div class="schedule schedule-261 event">
    <h4>Title</h4>
    <p>Lorem ipsum...</p>
  </div>
</article>

schedule-NUMBER类别是根据数据库中的项目 ID 分配的。基本上,这是来自具有重复事件的日历的标记,因此某些事件将共享相同的数据库记录。

如果一个项目是“重复的”(即存在多个 div ),我想为所有divschedule-261添加/删除一个额外的类。schedule-261如果一个项目不是“重复的”(即只有一个 div 带有schedule-283),则悬停时不会应用额外的类。

jQuery 是这个特定项目的首选库,因此首选 jQuery 解决方案。

谢谢!

4

4 回答 4

2
$(".schedule").each(function() {
    var cls = (this.className.match(/schedule-\d+/) || []).pop();
    if (cls.length === 0) return;

    var els = $(".schedule." + cls);
    if (els.not(this).length > 0) {
        els.hover(function() {
            els.addClass("someClass");
        }, function() {
            els.removeClass("someClass");
        });
    }
});

演示:http: //jsfiddle.net/DSYpA/

于 2013-01-28T19:56:45.540 回答
1
$('article .schedule').on('mouseover', function () {

    var s = $(this); 
    if(s.size()>1) {
       s.addClass('myHoverClass');
    }

});
于 2013-01-28T19:54:29.923 回答
0

找到“schedule-[Number]”类并添加样式类:

$(".schedule").on("someevent", function(){
    var className = this.className;
    var classes = className.split(" ");
    for(var i=0;i<classes.length;i++)
    {
        var cls = classes[i];
        if (cls.indexOf("schedule") != -1 && cls.replace("schedule").length !== 0 && $("." + cls).length > 1)
        {
              $("." + cls).addClass("whatever");
        }
    }
});
于 2013-01-28T19:49:42.080 回答
0
$('.schedule').each(function()
{
   var s=this.className.split(/\s+/).filter(function(w){return /schedule-\d+/.test(w);});
   if (s && $('.' + s).length > 1) $('.' + s).addClass('yourclass');  
});
于 2013-01-28T20:05:43.530 回答