如何禁用html链接而不是调用JS函数?

时间:2017-12-02 18:43:03

标签: javascript jquery html

有一个带有注释的文本将我的文本链接到dbpedia,我想知道Javascript中是否存在一种有效的方法,通过单击链接,显示包含所选dbpedia信息的div,而不是到达页面上的链接? 我在链接上寻找某种“显示无”,以便我显示我的div。我找不到这种方法,是否存在?

此外,由于Ajax请求,我的文本中的链接是动态生成的,并且它们没有id或类。

以下是我的文字中的一个链接:

<a href="http://dbpedia.org/resource/Lorem_ipsum" title="http://dbpedia.org/resource/Lorem_ipsum" target="_blank" on>Lorem Ipsum</a>

1 个答案:

答案 0 :(得分:4)

由于链接是动态创建的,因此您应该使用event delegation来获取它们。您可以使用attribute selector仅查找以特定子字符串开头的链接。然后使用preventDefault在使用AJAX获取信息并将其添加到模态之前禁用链接。

$(document).on('click', 'a[href^="http://dbpedia.org"]', function (e) {
  e.preventDefault();
  // load data from your source

});

<强> DEMO

非jQuery版本看起来像这样:

document.addEventListener('click', handleClick, false);

function handleClick(e) {
  const el = e.target;
  if (el.tagName === 'A' && el.href.startsWith('http://dbpedia.org')) {
    e.preventDefault();
    // Do things
  }
}

<强> DEMO