如何单击超链接内的文本以便拖动并突出显示?

时间:2011-08-15 11:52:31

标签: javascript jquery

如果您有一段普通文本,则可以单击文本内的任意位置并拖动鼠标以突出显示该文本。但是,如果文本位于锚点/链接标记内,则不允许您单击并拖动 - 链接捕获鼠标并阻止其发生。

要查看我的意思,请在此页面上找到一个文本链接,然后尝试在其中单击并拖动以选择它。它不会让你 - 你必须在链接外面点击并拖动它。

您需要在JavaScript / JQuery中暂时禁用链接以便拖动并突出显示它?

我不能在链接之外开始的原因是因为段落中的每个单词都在超链接内 - 这是一个视频记录,每个链接都会同步到视频中的一个段。

2 个答案:

答案 0 :(得分:2)

我的第一个想法是做这样的事情:

$("a").each(function() {
   $(this).replaceWith("<span class='link' data-href='" + $(this).attr("href") + "'>" + $(this).text() + "</span>"); 
});
$(".link").click(function() {
   window.location = $(this).data("href"); 
});

然而,可能有更好的方法来做到这一点。上面的代码将所有a元素转换为span元素,保留href属性值,然后将带有“link”类的span元素作为链接。您可以将span元素设置为类似于当前页面上a元素的样式。

以上是example以上的行动。

答案 1 :(得分:0)

您可以尝试this solution,将原始文本加载到变量中,然后将其还原。

但这似乎太乱了。有时更简单的解决方案更好。

当用户点击按钮隐藏带有链接的段落并显示没有链接的段落时,为什么没有两个段落并设置visibiltiy ='hidden'?

页面权重似乎不是问题,因为你无论如何加载视频。