Javascript 单击我的链接上未触发的事件,如何修复?
我正在根据接收到的JSON数据动态创建几个链接(使用jQuery html函数)。每个链接都有id“idxxxx”(xxxx是主键) 这是我正在使用的javascript代码:Javascript 单击我的链接上未触发的事件,如何修复?,javascript,jquery,Javascript,Jquery,我正在根据接收到的JSON数据动态创建几个链接(使用jQuery html函数)。每个链接都有id“idxxxx”(xxxx是主键) 这是我正在使用的javascript代码: $(document).ready(function(){ onLoad(); $("a[id^=id]").on("click", function(event) { alert('here'); }); function onLoad() { $(d
$(document).ready(function(){
onLoad();
$("a[id^=id]").on("click", function(event) {
alert('here');
});
function onLoad() {
$(document).prop("title", "Course Listing");
getCourses();
}
function getCourses(name) {
$.ajax({
url: "http://localhost/courses/getCourses?format=json"
, dataType: "json"
, data: {name: name}
, success: function(data, status) {
populateCourses(data);
}
});
}
function populateCourses(data) {
var html = "";
if (data.length > 0) {
$.each(data, function () {
html += "<a href='##' id='id" + this.ID + "'>Edit</a><br />";
});
}
$("#courselist").html(html);
}
});
$(文档).ready(函数(){
onLoad();
$([a[id^=id])。在(“单击”上,函数(事件){
警报(“此处”);
});
函数onLoad(){
$(文件).prop(“标题”、“课程列表”);
getCourses();
}
函数getCourses(名称){
$.ajax({
url:“http://localhost/courses/getCourses?format=json"
,数据类型:“json”
,数据:{name:name}
,成功:功能(数据、状态){
普及课程(数据);
}
});
}
函数populateCourses(数据){
var html=“”;
如果(data.length>0){
$。每个(数据、函数(){
html+=“
”;
});
}
$(“#课程列表”).html(html);
}
});
我的问题是创建的链接不会在单击事件时触发
作为测试,我在我的页面上手动创建了一个链接标签,其id与其他链接相似,我没有遇到同样的问题。警报框显示良好
有没有办法解决这个问题?谢谢问题是您在添加链接之前添加onClick,因为链接是在ajax返回后一段时间添加的,这是异步的。最简单的解决方案是在populateCourses方法中添加单击:
function populateCourses(data) {
var html = "";
if (data.length > 0) {
$.each(data, function () {
html += "<a href='##' id='id" + this.ID + "'>Edit</a><br />";
});
}
$("#courselist").html(html);
$("a[id^=id]").on("click", function(event) {
alert('here');
});
}
函数populateCourses(数据){
var html=“”;
如果(data.length>0){
$。每个(数据、函数(){
html+=“
”;
});
}
$(“#课程列表”).html(html);
$([a[id^=id])。在(“单击”上,函数(事件){
警报(“此处”);
});
}
问题在于,在添加链接之前添加onClick,因为链接是在ajax返回后一段时间添加的,这是异步的。最简单的解决方案是在populateCourses方法中添加单击:
function populateCourses(data) {
var html = "";
if (data.length > 0) {
$.each(data, function () {
html += "<a href='##' id='id" + this.ID + "'>Edit</a><br />";
});
}
$("#courselist").html(html);
$("a[id^=id]").on("click", function(event) {
alert('here');
});
}
函数populateCourses(数据){
var html=“”;
如果(data.length>0){
$。每个(数据、函数(){
html+=“
”;
});
}
$(“#课程列表”).html(html);
$([a[id^=id])。在(“单击”上,函数(事件){
警报(“此处”);
});
}
问题在于,在添加链接之前添加onClick,因为链接是在ajax返回后一段时间添加的,这是异步的。最简单的解决方案是在populateCourses方法中添加单击:
function populateCourses(data) {
var html = "";
if (data.length > 0) {
$.each(data, function () {
html += "<a href='##' id='id" + this.ID + "'>Edit</a><br />";
});
}
$("#courselist").html(html);
$("a[id^=id]").on("click", function(event) {
alert('here');
});
}
函数populateCourses(数据){
var html=“”;
如果(data.length>0){
$。每个(数据、函数(){
html+=“
”;
});
}
$(“#课程列表”).html(html);
$([a[id^=id])。在(“单击”上,函数(事件){
警报(“此处”);
});
}
问题在于,在添加链接之前添加onClick,因为链接是在ajax返回后一段时间添加的,这是异步的。最简单的解决方案是在populateCourses方法中添加单击:
function populateCourses(data) {
var html = "";
if (data.length > 0) {
$.each(data, function () {
html += "<a href='##' id='id" + this.ID + "'>Edit</a><br />";
});
}
$("#courselist").html(html);
$("a[id^=id]").on("click", function(event) {
alert('here');
});
}
函数populateCourses(数据){
var html=“”;
如果(data.length>0){
$。每个(数据、函数(){
html+=“
”;
});
}
$(“#课程列表”).html(html);
$([a[id^=id])。在(“单击”上,函数(事件){
警报(“此处”);
});
}
试试这个:
$(函数(){
var-ar=[];
对于(var i=1;i尝试以下方法:
$(函数(){
var-ar=[];
对于(var i=1;i尝试以下方法:
$(函数(){
var-ar=[];
对于(var i=1;i尝试以下方法:
$(函数(){
var-ar=[];
对于(var i=1;i),动态元素需要委托事件处理程序!动态元素需要委托事件处理程序!动态元素需要委托事件处理程序!动态元素需要委托事件处理程序!动态元素需要委托事件处理程序!