Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何用悬停图标替换已排序的列表号?_Jquery_Html_Css_List - Fatal编程技术网

Jquery 如何用悬停图标替换已排序的列表号?

Jquery 如何用悬停图标替换已排序的列表号?,jquery,html,css,list,Jquery,Html,Css,List,我有一个简单的有序列表: <ol> <li>one</li> <li>two</li> <li>three</li> </ol> 我需要将2替换为X,并使其可单击 (注意:上面的=表示移动悬停图标,通常为三条水平线。)问题是您无法将有序列表更改为无序列表(只需像这样在运行时将数字替换为X) 取而代之的是一个无序列表,其中的数字在span标记中排列,我们可以将其替换为X(图像/任何您

我有一个简单的有序列表:

<ol>
   <li>one</li>
   <li>two</li>
   <li>three</li>
</ol>
我需要将2替换为
X
,并使其可单击


(注意:上面的
=
表示移动悬停图标,通常为三条水平线。)

问题是您无法将有序列表更改为无序列表(只需像这样在运行时将数字替换为X)

取而代之的是一个无序列表,其中的数字在span标记中排列,我们可以将其替换为X(图像/任何您想要的)。这样就很容易将delete事件绑定到它上面

cssulli{列表样式类型:无;}

<ul>
    <li><span>1.</span> one</li>
    <li><span>2.</span> two</li>
    <li><span>3.</span> three</li>
</ul>

问题是你不能把一个有序的列表变成一个无序的列表(就像那样在运行中把数字换成一个X)

取而代之的是一个无序列表,其中的数字在span标记中排列,我们可以将其替换为X(图像/任何您想要的)。这样就很容易将delete事件绑定到它上面

cssulli{列表样式类型:无;}

<ul>
    <li><span>1.</span> one</li>
    <li><span>2.</span> two</li>
    <li><span>3.</span> three</li>
</ul>

你可以把你的图标放在一个范围内,绝对定位它。那个就把它展示在李的悬停上


您可以将图标放在一个范围内,并绝对定位它。那个就把它展示在李的悬停上


您可以创建一个新的css类来删除项目

li.remove
{
 background-image: url(remove.gif);
 background-repeat: no-repeat;
 background-position: 0 50%;
 padding: 3px 0 3px 20px;
 margin: .4em 0;
}
然后创建一个悬停事件处理程序,将该类添加到高亮显示的li中

$('ul li').on('hover', function (){
  $(this).toggleClass('remove');
}).on('click', function(){
   alert($(this).text());    
//take some action
})

这是给你一个粗略的想法,你需要根据你的需求调整它,当然还有一个实际的gif,你可以创建一个新的css类来删除一个项目

li.remove
{
 background-image: url(remove.gif);
 background-repeat: no-repeat;
 background-position: 0 50%;
 padding: 3px 0 3px 20px;
 margin: .4em 0;
}
然后创建一个悬停事件处理程序,将该类添加到高亮显示的li中

$('ul li').on('hover', function (){
  $(this).toggleClass('remove');
}).on('click', function(){
   alert($(this).text());    
//take some action
})

这是给你一个粗略的想法,你需要根据你的需求调整它,当然还有一个实际的gif。有三种很好的方法可以将图像用作列表项目符号:

  • 使用
    列表样式图像
    替换
    :悬停
    上的项目符号。这种方法的缺点是无法真正定位图像,并且图像大小限制了您的操作

  • 使用
    列表样式类型:none
    隐藏项目符号,并使用
    :before
    伪元素放置图像。这在IE7上不起作用

  • 与2类似,您可以仔细调整元素的边距和填充,并在其中放置一个不重复的背景图像。这可能是最可靠的方法,但它将您限制在一组非常特定的样式中


  • 有三种将图像用作列表项目符号的好方法:

  • 使用
    列表样式图像
    替换
    :悬停
    上的项目符号。这种方法的缺点是无法真正定位图像,并且图像大小限制了您的操作

  • 使用
    列表样式类型:none
    隐藏项目符号,并使用
    :before
    伪元素放置图像。这在IE7上不起作用

  • 与2类似,您可以仔细调整元素的边距和填充,并在其中放置一个不重复的背景图像。这可能是最可靠的方法,但它将您限制在一组非常特定的样式中


  • 这是我正在研究的同一个解决方案,实际的delete仍然有效:这是我正在研究的同一个解决方案,实际的delete仍然有效:这也意味着您必须在更改顺序时更新脚本中的数字。您只需在有序列表中的数字上方放置一个删除图标。。。类似这样:这也意味着在更改顺序时必须更新脚本中的数字。您只需在有序列表中的数字上方放置一个删除图标。。。类似这样的事情:对我来说,选项2是完美的!对我来说,选择2是完美的!
    li {
        position: relative;
    }
    
    li:hover {
        list-style-type: none;
    }
    
    li:hover:before {
        content: '';
        width: 50px;
        height: 50px;
        position: absolute;
        top: 50%;
        margin-top: -25px;
        left: -55px;
        background-image: url(x.png);
    }
    
    li:hover {
        list-style-type: none;
        background-image: url(x.png);
        background-position: 0 50%;
        background-repeat: no-repeat;
        margin-left: -55px;
        padding-left: 55px;
    }​