无法将单击事件绑定到新创建的范围项(jQuery)
我无法将事件绑定到jQuery生成的列表。我研究过一些类似的问题,但没有找到任何解决方案 这是生成我的列表的代码:无法将单击事件绑定到新创建的范围项(jQuery),jquery,binding,Jquery,Binding,我无法将事件绑定到jQuery生成的列表。我研究过一些类似的问题,但没有找到任何解决方案 这是生成我的列表的代码: var list = '<ul>'; for (var i = 0; i < data.length; i++) { list += '<li id="' + data[i].id + '"><span class="btnRemoveItem" title="Remove item from list"></span>
var list = '<ul>';
for (var i = 0; i < data.length; i++)
{
list += '<li id="' + data[i].id + '"><span class="btnRemoveItem" title="Remove item from list"></span>' + data[i].name + '</li>';
}
list += '</ul>';
jQuery("#spanContainer").html(list);
var列表=””;
对于(变量i=0;i'+data[i].name+'';
}
列表+='
';
jQuery(“#spanContainer”).html(列表);
这就创建了我的通缉名单。效果很好。但是我无法通过jQuery操作列表。一些研究为我指明了将事件绑定到列表的方向。我该怎么做?我看过好几篇有同样问题的帖子,但都没有找到解决我问题的方法
我使用的是jQuery1.2.6,不能使用v.1.3(它有.live函数)
资源:
编辑:
我试过了,但不起作用
jQuery(“#7276”).bind(“单击”,函数(){alert('test');})
这将显示html输出:
<span id="itemList">
<ul>
<li id="listItem_7276"><span title="Remove item from list" class="btnRemoveItem" id="7276"/>Main item</li>
<li id="listItem_7281"><span title="Remove item from list" class="btnRemoveItem" id="7281"/>Test item 4</li>
</ul>
</span>
主项目
测试项目4
该插件与jQuery 1.2.6配合使用,基本上与live()事件(及更多)相同。该插件与jQuery 1.2.6配合使用,基本上与live()事件(及更多)相同。我不确定通过jQuery操作列表是什么意思,但如果要将某些事件处理程序绑定到列表的元素,可以使用:
$("ul span.btnRemoveItem").click( yourOnClickHandler);
这将为列表中的所有span元素添加onClick处理程序。或者,您可以访问您使用的任何内容:
$("ul span.btnRemoveItem").bind( "event", yourOnEventHandler);
如果要在将每个列表元素插入DOM后分别访问它,可以执行以下操作:
$( "ul li#" + data[i].id).dosomething(); // here you can specify whatever you want to do.
我不确定通过jquery操作列表是什么意思,但如果您想将一些事件处理程序绑定到列表的元素,可以使用:
$("ul span.btnRemoveItem").click( yourOnClickHandler);
这将为列表中的所有span元素添加onClick处理程序。或者,您可以访问您使用的任何内容:
$("ul span.btnRemoveItem").bind( "event", yourOnEventHandler);
如果要在将每个列表元素插入DOM后分别访问它,可以执行以下操作:
$( "ul li#" + data[i].id).dosomething(); // here you can specify whatever you want to do.
尝试在jquery中构建数据结构:(未测试的代码)
ul=$(“
”);
对于(变量i=0;i ”)
.attr(“id”,数据[i].id)
.append($(“”)
.addClass(“btnRemoveItem”)
.attr(“标题”,“从列表中删除项目”)
。单击(函数(){
$(this.parent().remove();
})
).append(数据[i].name)
);
}
jQuery(“#spanContainer”).html(ul);
尝试在jquery中构建数据结构:(未测试的代码)
ul=$(“
”);
对于(变量i=0;i ”)
.attr(“id”,数据[i].id)
.append($(“”)
.addClass(“btnRemoveItem”)
.attr(“标题”,“从列表中删除项目”)
。单击(函数(){
$(this.parent().remove();
})
).append(数据[i].name)
);
}
jQuery(“#spanContainer”).html(ul);
嗯……将列表附加到#span容器时,html函数应该可以工作
由于无法使用live(),因此在将列表附加到#spanContainer后,必须手动重新绑定事件,如下所示:
function listGenerator(){
...//create the list
jQuery('#sc').html(list);
jQuery('#sc ul li').bind('click', function(){...});
}
$("#spanContainer span.btnRemoveItem").click(function () {
$(this). ... ;
});
$("#spanContainer span.btnRemoveItem").livequery('click', function(e){
$(this). ...;
});
(另外,jQuery each()函数可以帮助您生成该列表……您可能需要查看它)Hmm……将列表附加到#spanContainer时,html函数应该可以工作 由于无法使用live(),因此在将列表附加到#spanContainer后,必须手动重新绑定事件,如下所示:
function listGenerator(){
...//create the list
jQuery('#sc').html(list);
jQuery('#sc ul li').bind('click', function(){...});
}
$("#spanContainer span.btnRemoveItem").click(function () {
$(this). ... ;
});
$("#spanContainer span.btnRemoveItem").livequery('click', function(e){
$(this). ...;
});
(另外,jQuery each()函数可以帮助您生成该列表……您可能需要查看它)我看不到将事件分配给列表的代码。 你仍然会想要这样的东西:
function listGenerator(){
...//create the list
jQuery('#sc').html(list);
jQuery('#sc ul li').bind('click', function(){...});
}
$("#spanContainer span.btnRemoveItem").click(function () {
$(this). ... ;
});
$("#spanContainer span.btnRemoveItem").livequery('click', function(e){
$(this). ...;
});
或者,如果您特别询问1.3新增的live功能,那么您可以使用一个名为livequery的旧版本jQuery的UI插件
比如说:
function listGenerator(){
...//create the list
jQuery('#sc').html(list);
jQuery('#sc ul li').bind('click', function(){...});
}
$("#spanContainer span.btnRemoveItem").click(function () {
$(this). ... ;
});
$("#spanContainer span.btnRemoveItem").livequery('click', function(e){
$(this). ...;
});
Joerg我看不到将事件分配到列表中的代码。 你仍然会想要这样的东西:
function listGenerator(){
...//create the list
jQuery('#sc').html(list);
jQuery('#sc ul li').bind('click', function(){...});
}
$("#spanContainer span.btnRemoveItem").click(function () {
$(this). ... ;
});
$("#spanContainer span.btnRemoveItem").livequery('click', function(e){
$(this). ...;
});
或者,如果您特别询问1.3新增的live功能,那么您可以使用一个名为livequery的旧版本jQuery的UI插件
比如说:
function listGenerator(){
...//create the list
jQuery('#sc').html(list);
jQuery('#sc ul li').bind('click', function(){...});
}
$("#spanContainer span.btnRemoveItem").click(function () {
$(this). ... ;
});
$("#spanContainer span.btnRemoveItem").livequery('click', function(e){
$(this). ...;
});
Joerg上升一级,使用$(TheParent)定义事件
这将对类的现有和新创建的子类起作用。someClass提升一个级别,并使用$(TheParent)定义事件
这将对现有的和新创建的孩子们起作用。someClass哇,在编辑我原来的帖子的24分钟内,有这么多反馈!我现在来测试你的建议!哇,在编辑我原来的帖子的24分钟里,有这么多的反馈!我现在来测试你的建议!我已经测试了jQuery(“#7276”).bind(“click”,function(){alert('test');})-其中#7276是span“按钮”的ID。但是什么事都没发生。嗯……你什么时候开始?页面何时加载?您可能需要根据我上面的编辑重新绑定它们。我已经测试了jQuery(#7276”).bind(“单击”,function(){alert('test');})-其中#7276是span“按钮”的ID。但是什么事都没发生。嗯……你什么时候开始?页面何时加载?您可能需要根据我上面的编辑重新绑定它们。好的,我用这个代码替换我的代码。但是没有输出。使用“console.log(ul)”,输出为[object]。为什么只应用“/”结束标记?jQuery应用了第一个标记?抱歉,它只是一个被剪断的标记。我来填。啊哈!杰出的我认为我不需要带有上述代码的.html(ul)。现在它输出所有东西。在使用jQuery构建html结构方面,我更聪明。非常感谢!注意:.click结尾缺少一个“')”。我想我应该为其他的剪贴画辩护:)好的,我用这个替换我的代码。但是没有输出。使用“console.log(ul)”,输出为[object]。为什么只应用“/”结束标记?jQuery应用了第一个标记?抱歉,它只是一个被剪断的标记。我来填