块元素 - 如何仅将事件指向文本

时间:2011-06-28 18:20:42

标签: jquery html

我想展示title(attr) 只有在文本悬停时才会出现。

问题是,我们在这里讨论的是blockph1元素的悬停。

所以我的问题是:如果仅在文本被定位时(不是元素的所有宽度),如何使标题属性出现(或任何其他事件)

Example

到目前为止,我有jQuery:

THIS demo

$('h1, p').each(function(){

    $(this).wrapInner('<span></span>');
    var spann = $(this).children('span');
    var span = spann.width();
    $(this).children('span').contents().unwrap();

     $(this).css({
         width: span+'px',
     });

    if ( $(this).css('text-align') == 'center' ){   
        $(this).css({
            marginLeft:'auto',
            marginRight:'auto'
        });
    }

});

我实际上只是暂时添加span,只是为了进行位置计算。

但现在缺少背景......唉。

2 个答案:

答案 0 :(得分:3)

一个肮脏的技巧是在元素中插入span。这是不可见的(它是内联的),但是有一个宽度,以便它只适合文本。

这是p

的示例
<p>
    <span title="I am a paragraph">Paragraph</span>
</p>

http://jsfiddle.net/J6bUw/1/

答案 1 :(得分:2)

  

我只想在文本悬停时显示title(attr)。

你不能。

  

所以我的问题是:如果仅在文本被定位时(不是元素的所有宽度),如何使标题属性出现(或任何其他事件)

将文字换入inline元素,例如<span>,然后将title移至span。示例:http://jsfiddle.net/mattball/vmuQr/


使用jQuery进行转换:http://jsfiddle.net/mattball/WyKgV/