jquery - 在 jQuery 中的同一 div 中分离 "click on text"和 "click on background"事件

标签 jquery html css events event-handling

<分区>

假设有一个<div>与文字。文本用 <br> 分成几行.如果我们在其中移动光标,最终光标图像会变为“文本”。如果我们将光标稍微移到一边,它的图像会变回“默认”,但我们可能会留在 <div> 范围内。 .

示例:

HTML

<div> long text here <br> short one <div>

编译后的html

这里是长文
短文

如果我们将鼠标移动到“one”和“here”之间的位置,则鼠标指针会在相同的位置发生变化 <div> .问题是:是否可以在同一 <div> 中分离使用“文本”指针和“默认”指针完成的点击事件?使用 jQuery?

最佳答案

您指的是 css cursor 属性。

如果光标发生变化,那是因为鼠标悬停在具有不同 cursor 值的元素上,这意味着(当然)每个元素都可以根据点击事件分别定位。

对于这种特殊情况,将您的文本包裹在 span 中,您将实现您所追求的目标:

<div> <span>long text here</span> <br> <span>short one</span> <div>

因为你有 jQuery 标记,你可以选择像这样绑定(bind)你的事件处理程序:

$('span').click(function(event)
{
   alert('span clicked');
   event.stopPropagation();
});

$('div').click(function(event)
{
   alert('div clicked');
});

注意事项:

http://api.jquery.com/event.stoppropagation/停止传播是一种阻止事件“冒泡”的方法。 span 位于 div 内部,因此从技术上讲,如果您的 span 已被单击 - 您的 div 也已被单击。你想在跨度点击事件处理程序中停止它,因此我在跨度点击处理程序上调用了 stopPropagation()

另请注意,我是根据 divspan 选择的,这将选择所有 div 和所有跨度。您需要针对您的代码对其进行优化。

关于jquery - 在 jQuery 中的同一 div 中分离 "click on text"和 "click on background"事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28028440/

上一篇:javascript - Jssor 元素符号导航器未出现

下一篇:css - Bootstrap - 自定义导航栏

相关文章:

javascript - jquery 之类的代码在 switch 内不起作用

jquery - 如何从 jQuery 数据表中的 ajax 数据源获取 mRender() 函数中的隐藏列值

javascript - 在 {display : none;} images 上停止 Lightbox2 画廊

html - 为什么这个 twitter script/iframe 不 float 到右侧?

javascript - 将 JSON 图层添加到 Leaflet map

html - 如何在增加页面比例后固定背景图像位置?

c# - 当我想要同名控件时如何处理 "FindControl requires that controls have unique IDs"?

html - CSS 在 HTML 应用程序中不起作用

html - 在父级中并排获取 div?

html - Bootstrap 网格以最小尺寸中断