Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ()上的jQuery无法正常工作_Javascript_Jquery - Fatal编程技术网

Javascript ()上的jQuery无法正常工作

Javascript ()上的jQuery无法正常工作,javascript,jquery,Javascript,Jquery,你好。 最近我开始学习jQuery,在jQuery开发方面我是个新手 我对.on()事件有以下问题。我已经在堆栈溢出中搜索了答案,但还没有找到任何适合我的案例的有效解决方案。我有以下代码: $('input.a').on('click',function(){ $(this).after('<input class="a" type="button" value="click me">'); }); $('input.a')。在('click',function()上{ $

你好。 最近我开始学习jQuery,在jQuery开发方面我是个新手

我对.on()事件有以下问题。我已经在堆栈溢出中搜索了答案,但还没有找到任何适合我的案例的有效解决方案。我有以下代码:

$('input.a').on('click',function(){
    $(this).after('<input class="a" type="button" value="click me">');
});
$('input.a')。在('click',function()上{
$(本)。在('')之后;
});
这个函数工作得很好,但是当我点击按钮时,生成的按钮没有任何作用。我应该使用。live();事件,但当我使用jQuery 1.10.2时,此事件已被弃用。在访问jQuery文档之后,我发现我应该按照以下方式使用.on()

$('input.a').on('click','input.a',function(){
    $(this).after('<input class="a" type="button" value="click me">');
});
$('input.a')。在('click','input.a',function()上{
$(本)。在('')之后;
});
但一旦我这样做了,整个函数就停止工作了(我假设,因为我没有得到任何反馈),但开发人员的控制台中也没有错误。
我是否做错了什么,或者是否有其他替代.live()事件的方法?

您需要将处理程序绑定到一个已经存在的元素,在本例中,您是将处理程序绑定到
输入
元素本身。。。而是将其绑定到dom ready上文档中存在的所有目标输入元素(如文档、正文等)的祖先元素

$(document).on('click','input.a',function(){
    $(this).after('<input class="a" type="button" value="click me">');
});
$(document).on('click','input.a',function(){
$(本)。在('')之后;
});

您需要将处理程序绑定到一个已经存在的元素,在您的示例中,您将处理程序绑定到
输入
元素本身。。。而是将其绑定到dom ready上文档中存在的所有目标输入元素(如文档、正文等)的祖先元素

$(document).on('click','input.a',function(){
    $(this).after('<input class="a" type="button" value="click me">');
});
$(document).on('click','input.a',function(){
$(本)。在('')之后;
});

要使用事件委派,必须将其绑定到最近的静态父元素,如下所示

$(document).on('click','input.a',function(){
    $(this).after('<input class="a" type="button" value="click me">');
});
$(document).on('click','input.a',function(){
$(本)。在('')之后;
});

要使用事件委派,必须将其绑定到最近的静态父元素,如下所示

$(document).on('click','input.a',function(){
    $(this).after('<input class="a" type="button" value="click me">');
});
$(document).on('click','input.a',function(){
$(本)。在('')之后;
});

替换
$(选择器).live(eventName,handler)
$(文档).on(eventName,选择器,handler)

在封面下,使用事件委派,这意味着当事件在DOM树中冒泡到更高的位置时,特别是当它冒泡到DOM树顶部的文档元素时,它将处理该事件。因此,为了创建相同的体验,您可以使用选择器将处理程序绑定到
文档
,然后将选择器作为第二个参数传入,以指示您只希望处理原始目标与该选择器匹配的事件


由于与使用
live
相比,您更能控制此场景,因此如果有意义的话,您还可以选择绑定到DOM树中的不同元素。因此,您可以不绑定到
文档
,而只绑定到保存动态创建元素的容器(例如,
$('.inputWrap')。在('click','input.a',function(event){/*…*/})
上,替换
$(选择器)。live(eventName,handler)
$(文档)。在(eventName,selector,handler)上

在幕后,正在使用事件委派,这意味着当事件在DOM树中冒泡时,它会处理事件,特别是当它冒泡到DOM树顶部的文档元素时。因此,要创建相同的体验,您可以使用将处理程序绑定到
文档
,然后将选择器作为第二个参数传递,表示只希望处理原始目标与该选择器匹配的事件


由于您比使用
live
更能控制此场景,因此,如果有意义的话,您还可以选择绑定到DOM树中的其他元素。因此,不必绑定到
文档
,您可以只绑定到保存动态创建的元素的容器(例如,
$(“.inputWrap”)。打开('click','input.a',function(event){/*…*/})

此部分不正确:
$('input.a')
在使用
.on
时,您需要选择包含目标元素的元素,例如,包含输入的文档或表单。我向您保证
.on
工作正常。并且。此部分不正确:
$('input.a')
当使用
时。在
上,您需要选择包含目标元素的元素,例如,包含输入的文档或表单。我向您保证,
。在
上工作正常。出于好奇,为什么要指定“最近的”家长,与
body
document
相反?出于个人偏好,我将事件委托集中在大型应用程序中指定的对象容器中,或一次性应用程序中的
body
上。出于好奇,您为什么指定“最近的”呢家长,与
body
document
相反,出于个人偏好,我在大型应用程序中将活动委托集中在指定的对象容器中,或在一次性应用程序中将活动委托集中在
body
上。