设置一个按钮按下函数来触发一个Id为的Ajax调用
Setting up a button press function to trigger an Ajax call with a Id
我正试图找出最简单的方法来设置包含Ajax调用的页面。
我的主要问题是,我可以编写页面,但当涉及到绑定用户单击按钮时运行的事件时,我很难想出一个好的方法来将id传递给进行调用的函数,然后返回到按下的DOM元素,让用户知道它是成功的。
我创建了一个非常简单的jsFiddle来显示问题:
Html:
<ul id="list"></ul>
Javascript:
var Data = [{"id":1,"name":"a"},{"id":2,"name":"b"},{"id":3,"name":"c"}];
function dothething(id){
alert("load the ajax - but how to get the back to the element that was clicked?")
}
for (i=0;i<Data.length;i++){
$("#list").append(
$("<li></li>")
.text(Data[i].name)
.click(function(){
alert("How to get the id?")
id = 1
dothething(id)
})
)
}
http://jsfiddle.net/wqorcwjq/1/
完成这个例子最简单的方法是什么?
您一开始就没有设置ID来获取它。:)
使用.attr("id", Data[i].id)
设置ID。
使用事件委托处理动态添加的li
元素的点击事件。
更新的jsFiddle
JS:
var Data = [{"id":1,"name":"a"},{"id":2,"name":"b"},{"id":3,"name":"c"}];
function dothething(id){
alert("load the ajax - but how to get the back to the element that was clicked?")
}
for (i=0;i<Data.length;i++){
var li = $("<li></li>").text(Data[i].name).attr("id", Data[i].id); // set li text and ID here
$("#list").append(li);
}
// Event delegation
$(document).on("click", "li", function(){
alert($(this).attr('id'));
dothething($(this).attr('id'));
});
读取:
.attr()
|jQuery- 了解活动委托|jQuery学习中心
您可以使用jquery的$.each
函数。
$.each(Data, function(i, item){
$("#list").append(
$("<li></li>")
.text(item.name)
.click(function(){
alert(item.id);
dothething(item.id);
})
);
});
您可以使用数据api来存储li
元素的id
,然后在点击处理程序中使用相同的内容
var Data = [{
"id": 1,
"name": "a"
}, {
"id": 2,
"name": "b"
}, {
"id": 3,
"name": "c"
}];
function dothething(id) {
alert("load the ajax - " + id)
}
for (i = 0; i < Data.length; i++) {
$("#list").append(
$("<li></li>", {
text: Data[i].name
}).data('id', Data[i].id).click(function() {
var id = $(this).data('id')
dothething(id)
}))
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul id="list"></ul>
相关文章:
- 向更新mysql查询传递一个id
- Javascript:表单验证getElementById仅返回第一个id元素
- JS在隐藏未定义的值后仅从数组中返回第一个id的值
- Meteor:访问另一个集合,每个块中有一个id
- js组合对象只返回一个id
- 给每个谷歌距离矩阵结果一个id
- 如何附加一个id's的详细信息只通过php或jquery提供一次
- Ember eror试图注册一个id已在使用的视图
- 如何使用innerHTML更改图像大小来给它一个id Javascript
- 具有一个#id的多选选项可显示n个隐藏表
- 设置一个按钮按下函数来触发一个Id为的Ajax调用
- 如何创建一个每行列数未知的html表,对齐列,并为每个单元格/行指定一个id
- jQuery鼠标滚动到下一个id
- 如何在 JavaScript 中获取另一个 ID 下的 ID
- Javascript 保存相同的 ID,而不会在 LocalStorage 中覆盖另一个 ID
- 如何在 html 中调用另一个 ID 中的特定 ID
- 将事件绑定到类中的所有元素,而不仅仅是一个 id
- 使用 JSP 为
-Elements 提供一个 ID - JS只使用一个id,忽略另一个id
- 找到一个按钮并通过jQuery / JavaScript分配一个ID