Dynamic Jquery未应用于上下文菜单中创建的动态元素
我有一个包含Dynamic Jquery未应用于上下文菜单中创建的动态元素,dynamic,contextmenu,jquery-on,Dynamic,Contextmenu,Jquery On,我有一个包含$('a')的脚本 在我的contextmenu函数中,我创建了一个带有链接的列表 $(function () { $('a').on('contextmenu', function (event) { $("<ul id='menu'></ul>") .append('<li><a href="#" class="test">Test 1</a></li>') .
$('a')的脚本代码>
在我的contextmenu函数中,我创建了一个带有链接的列表
$(function () {
$('a').on('contextmenu', function (event) {
$("<ul id='menu'></ul>")
.append('<li><a href="#" class="test">Test 1</a></li>')
.append('<li><a href="">Test 2</a></li>')
.appendTo("body")
.css({ top: event.pageY + "px", left: event.pageX + "px" });
return false;
});
$(函数(){
$('a')。在('contextmenu',函数(事件)上{
$(“
”)
.append(“”)
.append(“”)
.附件(“正文”)
.css({顶部:event.pageY+“px”,左侧:event.pageX+“px”});
返回false;
});
}))
但是,单击列表中的链接时,不会触发第一段代码(单击事件)。但是,它会为页面上的每个其他链接触发。我如何解决这个问题,使我的脚本可以在动态元素上运行,这只是另一个脚本的翻版
在$(document)上调用jQuery并提供“selector”选项将回调绑定到与选择器参数匹配的动态添加元素
就是这个,
$(document).on('click', 'a', function () {
alert( $(this).attr('class') );
});
与此相反:
$('a').on('click', function () {
alert($(this).attr('class'));
});
你试过这个吗?是的,我使用的是“on”函数,而不是“live”函数,但是请注意,在回调中,您希望作为“this”的动态元素的一个包含元素上的应答调用on
。所以类似的东西应该可以工作:$(document).on('click','a',function(){…})代码>。也尝试过,但不起作用…似乎起作用: