嗨!我正在写一个基于json的小型数据库网站作为学校项目。我的代码存在以下问题。
我想在不刷新页面的情况下在加载新内容的页面上建立链接。为了服务这个过程,我使用带有jquery代码的<a>
标签来阻止链接刷新页面,如下所示:
$("#sorter").click(function (e) {
e.preventDefault();
name = look_for_index($("#artist_input").val(), artist_lite_dict, "name");
global.load_artist();
});
在上面的情况下,这是有效的,但在下面的情况下,它只是拒绝工作,我不知道为什么。我试过让我认识的每个人都知道Js帮助我,但人们只是让人感到困惑。 &#34;以下代码&#34;:
$(".art").click(function(e){
console.log("CLICK");
e.preventDefault();
name = this.parent().sibling(".title").val()
title = this.children(span).val();
look_for_index(name, artist_full_dict, "name")
global.print_art(title);
});
与此代码相关的HTML是在javascript中生成的,但如果错误与html相关,则以下是模板对象:
const art_list_template = ({
title,
date,
index
}) => `
<li class="${title} article art">
<a href="" class="art">
<span class="title art">
${title}
</span>
<p>
Date: ${date}, Index: ${index}
</p>
</a>
</li>
`
链接到github上的整个项目:https://github.com/Stephan-kashkarov/Collector
-Thanks! 斯蒂芬
答案 0 :(得分:4)
.preventDefault
需要在其所在函数的参数上调用。例如,而不是
function (e) {
event.preventDefault();
你应该做
function (e) {
e.preventDefault();
如果event
是参数名称,请使用event
,但通常是其他内容。当您遇到错误时,请检查您的控制台以查看它的内容 - 它应该给您一个错误,例如event is not defined
,当您拥有该代码时。