我有一个HTML列表,看起来像
<a onclick="open_file()" id="3.txt">3.txt</a>
我的open_file()
功能正在寻找此
function open_file() {
$("a").click(function (event) {
var file_name = event.target.id;
$("#f_name").val(file_name);
$.ajax({
url: "docs/" + file_name,
dataType: "text",
success: function (data) {
$("#text_form").val(data);
$('#text_form').removeAttr('readonly');
$('#delete_button').removeAttr('disabled');
$('#save_button').removeAttr('disabled');
}
})
});
}
问题是函数最终只在两次点击此链接后才将数据加载到所有字段(text_form
和f_name
)。它工作即使我第一次点击一个文件,然后点击另一个文件,它加载。有什么方法可以解决这个问题吗?
答案 0 :(得分:3)
您目前正在做的是将onclick事件添加到调用函数的链接,该函数通过jQuery 添加另一个onclick事件。
删除onclick
属性和open_file()
函数包装器,以便jQuery按预期添加事件。
答案 1 :(得分:1)
您不需要onclick="open_file()"
这个:
<div id='linkstofiles'>
<a id="3.txt">3.txt</a>
//other links go here
</div>
$("#linkstofiles a").click(function (event) {
var file_name = event.target.id;
$("#f_name").val(file_name);
$.ajax({
url: "docs/" + file_name,
dataType: "text",
success: function (data) {
$("#text_form").val(data);
$('#text_form').removeAttr('readonly');
$('#delete_button').removeAttr('disabled');
$('#save_button').removeAttr('disabled');
}
})
});
答案 2 :(得分:0)
当你的html中有onclick
时,你不需要再次在函数中绑定点击事件。
同样对于$ is not defined
,您需要将jquery库放在头部。