Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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
Javascript 如何禁用html链接来调用JS函数?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何禁用html链接来调用JS函数?

Javascript 如何禁用html链接来调用JS函数?,javascript,jquery,html,Javascript,Jquery,Html,有一个带有注释的文本将我的文本链接到dbpedia,我想知道Javascript中是否存在一种有效的方法,通过单击链接来显示包含选定dbpedia信息的div,而不是到达链接页面? 我正在链接上寻找某种类型的“显示无”,以允许我显示我的div。我找不到此方法,它是否存在 此外,由于Ajax请求,我的文本中的链接是动态生成的,并且它们没有id或类 以下是我文本中的一个链接: <a href="http://dbpedia.org/resource/Lorem_ipsum" title="ht

有一个带有注释的文本将我的文本链接到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>

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

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

});

非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
  }
}

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

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

});

非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
  }
}

那么,如果链接是动态生成的,是什么阻止您添加类或事件侦听器呢?这将使事情变得更容易,以确保您的函数将仅为预期的锚定标记触发。取决于您如何创建动态锚定标记,您还可以添加这样的偶数侦听器/调用。我添加了两个方法,因为有些人将元素作为字符串编写,而不是使用
.createElement()
,所以如果链接是动态生成的,那么是什么阻止您添加类或事件侦听器?这将使事情变得更容易,以确保您的函数将仅为预期的锚定标记触发。取决于您如何创建动态锚定标记,您还可以添加这样的偶数侦听器/调用。我添加了两个方法,因为有些人将元素作为字符串编写,而不是使用
.createElement()