由于某些原因,当我单击其中一个链接时,下面的代码没有提醒我正确的data-id。
这就是我所拥有的:
HTML
<a class="margin-0 size-9 serve" data-toggle="modal" data-target="#myModal2" data-id="3">Hello</a></p>
<a class="margin-0 size-9 serve" data-toggle="modal" data-target="#myModal2" data-id="4">Test</a></p>Jquery
$(".serve").click(function(){ // Click to only happen on serve links
alert($(this).attr('data-id'));
});提前感谢
发布于 2017-02-06 15:09:03
如果您的页面使用类名serve动态创建元素,则需要将事件绑定到已存在的父级,通常是document。
$(document).on("click", ".serve", function (event) {
alert($(this).data('id'));
});发布于 2017-02-06 15:11:00
工作正常。如果元素是在DOM呈现后动态生成的,则Dommmmm的答案可能会有所帮助。
$(".serve").click(function(){ // Click to only happen on serve links
alert($(this).attr('data-id'));
});发布于 2017-02-06 15:06:15
我假设你是在动态生成你的网页元素?
您必须为生成的每个新动态元素启动一个click事件处理程序,而现有的事件处理程序不适用于新生成的DOM元素。
$(".serve")仅应用于注册事件处理程序时存在的元素。
要解决此问题,您可以为动态添加的每个新元素实例化事件处理程序:
例如:
function generateNewElementToPage() {
var newElement;
// your code here
$(parentContainer).append(newElement); // append your new element to page
$(newElement).click(function(){ // add event handler for newly created element
// do stuff here when event handler is triggered
});
}https://stackoverflow.com/questions/42061934
复制相似问题