Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.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函数都适用于javascript编写的元素_Javascript - Fatal编程技术网

使所有javascript函数都适用于javascript编写的元素

使所有javascript函数都适用于javascript编写的元素,javascript,Javascript,因此,我有一个新按钮,当用户单击+按钮时,它由JavaScript编写 但是,新按钮似乎无法访问JavaScript单击功能 我想知道如何解决这个问题 JS $('div.btn-floating')。单击(函数(){ //警报(this.id); 如果(this.id==“addnew”){ dl=document.getElementById(“newpetprofiles”); dl.insertAdjacentHTML('afterbegin',''); } var morphFAB=$

因此,我有一个新按钮,当用户单击+按钮时,它由JavaScript编写

但是,新按钮似乎无法访问JavaScript单击功能

我想知道如何解决这个问题

JS

$('div.btn-floating')。单击(函数(){
//警报(this.id);
如果(this.id==“addnew”){
dl=document.getElementById(“newpetprofiles”);
dl.insertAdjacentHTML('afterbegin','');
}
var morphFAB=$(“#覆盖”);
morphFAB.toggleClass('visible hidden');
if(morphFAB.hasClass('visible')){
$('#form').addClass('animated slideInUp');
}否则{
$('#form').removeClass('animated slideInUp');
}
})

Click函数为所有匹配元素迭代dom,并为这些元素添加事件处理程序。发生这种情况时,动态创建的按钮不存在。因此,没有附加任何事件处理程序。您需要使用jQuery.on

更改:

     $('div.btn-floating').click(function () {

这将持续搜索所有匹配的元素,并在将它们附加到文档时添加事件处理程序。最好的解决方案是使用最接近的公共父级而不是文档。像这样:

    $("<my common parent element>").on("click", "div.btn-floating", function () {
$(“”)。在(“单击”,“div.btn-floating”,函数(){

您将需要一个委托事件处理程序…如
$(文档)。在('click',div.btn-floating',function(){
为什么这样做还有效?我承认普通的click函数不起作用?“normal.”click函数不查找将来创建的元素。只查找现在存在的元素。
     $(document).on("click", "div.btn-floating", function () {
    $("<my common parent element>").on("click", "div.btn-floating", function () {