4

在一个网格中有大约 500 个锚标记,它们都具有标题属性,我想从用户当前悬停的元素中获取该标题,并将其显示在网格的顶部,这样你就可以知道你在悬停什么。或者,有替代方案吗?

<a class="color" title="#Wicked" style="height: 30px; width: 30px; background-color: rgb(70, 60, 65); display: block;"></a>
<a class="color" title="#Tallulah" style="height: 30px; width: 30px; background-color: rgb(95, 58, 61); display: block;"></a>
<a class="color" title="#Merlot" style="height: 30px; width: 30px; background-color: rgb(79, 56, 57); display: block;"></a>
<a class="color" title="#Speakeasy" style="height: 30px; width: 30px; background-color: rgb(87, 50, 65); display: block;"></a>
<a class="color" title="#Tamarind" style="height: 30px; width: 30px; background-color: rgb(95, 68, 74); display: block;"></a>
<a class="color" title="#Oxford" style="height: 30px; width: 30px; background-color: rgb(101, 64, 60); display: block;"></a>
<a class="color" title="#Mulberry" style="height: 30px; width: 30px; background-color: rgb(111, 70, 83); display: block;"></a>
<a class="color" title="#Crantini" style="height: 30px; width: 30px; background-color: rgb(128, 81, 87); display: block;"></a>
<a class="color" title="#Sangria" style="height: 30px; width: 30px; background-color: rgb(121, 87, 90); display: block;"></a>
<a class="color" title="#Pueblo" style="height: 30px; width: 30px; background-color: rgb(141, 108, 109); display: block;"></a>
<a class="color" title="#Bel Ange Rose" style="height: 30px; width: 30px; background-color: rgb(167, 123, 127); display: block;"></a>
<a class="color" title="#Foxglove" style="height: 30px; width: 30px; background-color: rgb(200, 143, 120); display: block;"></a>
<a class="color" title="#Cactus Bloom" style="height: 30px; width: 30px; background-color: rgb(230, 191, 164); display: block;"></a>
<a class="color" title="#Pillow Talk" style="height: 30px; width: 30px; background-color: rgb(240, 221, 211); display: block;"></a>

似乎还没有找到任何方法来抓住这个。任何有用的提示或替代方法!

在这里演示

4

7 回答 7

9

尝试这个:

$('.color').mouseover(function() {
    var title = this.title;
    // do something with title...
});

由于您有 500 个元素,您可以使用单个委托处理程序来提高性能。首先将您的元素包装在包含div

<div id="container">
    <!-- your current code here -->
</div>

然后在 jQuery 中:

$('#container').on('mouseover', '.color', function() {
    var title = this.title;
    console.log(title);
});

这将导致 1 个元素具有事件处理程序,而不是可能的 500 个。

于 2013-08-28T13:24:59.573 回答
2

除了这里已经发布的内容之外,您应该将尽可能多的样式信息移到 CSS 中。接受@Rory McCrossan 的建议,如果您将整个东西放在一个容器中,那么我们可以使用它来使用以下css来设置颜色元素的样式

#colors a {
    height: 30px;
    width: 30px;
    display: block;
}

那么我们的HTML应该如下所示:

<div id='currentColor'>Color: </div>
<div id='colors'>
    <a title="Wicked" style="background-color: rgb(70, 60, 65);"/>
    <!-- more colors -->
</div>

我们可以使用js/jQuery来完成剩下的工作。

$('#colors').on({
    mouseenter: function () {
        $('#currentColor').text("Color: " + this.title);
    },
    mouseleave: function () {
        $('#currentColor').text("Color: ");
    }
}, 'a');

此代码使用 jQuery 的on方法为容器内的所有元素附加一个delegated handlertomouseentermouseleave事件。a#colors

看这个演示:

jsFiddle

于 2013-08-28T13:57:44.413 回答
1

是您在 jsfiddle 上的问题的解决方案

下面是代码

$('a').mouseover(function(){
    alert($(this).prop('title'));
});
于 2013-08-28T13:27:19.150 回答
1

您可以简单地使用以下代码:

$('.color').hover(function(){

var title = $(this).attr("title");    

});
于 2013-08-28T18:08:36.983 回答
0
$("a:hover").mouseenter(function(){
   var _title = $(this).attr("title"); // Why prefix with an anchor? Maybe you need to replace....
   console.log(_title);
});
于 2013-08-28T13:31:30.027 回答
0

这里是清理的 Html、Css 和 Script Jsfiddle Here

<div class="container">
<a class="color" title="#Wicked" style=" background-color: rgb(70, 60, 65); "></a>
<a class="color" title="#Tallulah" style=" background-color: rgb(95, 58, 61); "></a>
<a class="color" title="#Merlot" style=" background-color: rgb(79, 56, 57); "></a>
<a class="color" title="#Speakeasy" style=" background-color: rgb(87, 50, 65); "></a>
<a class="color" title="#Tamarind" style=" background-color: rgb(95, 68, 74); "></a>
<a class="color" title="#Oxford" style=" background-color: rgb(101, 64, 60); "></a>
<a class="color" title="#Mulberry" style=" background-color: rgb(111, 70, 83); "></a>
<a class="color" title="#Crantini" style=" background-color: rgb(128, 81, 87); "></a>
<a class="color" title="#Sangria" style=" background-color: rgb(121, 87, 90); "></a>
<a class="color" title="#Pueblo" style=" background-color: rgb(141, 108, 109); "></a>
<a class="color" title="#Bel Ange Rose" style=" background-color: rgb(167, 123, 127); "></a>
<a class="color" title="#Foxglove" style=" background-color: rgb(200, 143, 120); "></a>
<a class="color" title="#Cactus Bloom" style=" background-color: rgb(230, 191, 164); "></a>
<a class="color" title="#Pillow Talk" style=" background-color: rgb(240, 221, 211); "></a>
</div>

脚本

 $('.color').on('mouseenter',function() {
        alert(this.title);
    });

CSS

.color{height: 30px; width: 30px;display:block;}
.container{width:50%;margin:0 auto;}
于 2013-08-28T13:42:24.113 回答
0

Bootstrap 有一些漂亮的工具提示: http: //getbootstrap.com/javascript/#tooltips

    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css">
    <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
    <script>
        $('a').tooltip();
    </script>

演示http://jsfiddle.net/wernull/fEzsy/

于 2013-08-28T14:10:39.107 回答