Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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/1/angular/31.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,我试图制作一个简单的列表,能够添加和删除元素。现在,我正在为每个列表元素对象(现有的和添加的)添加和执行一个简单的操作。不幸的是,我在这方面遇到了一些困难。我可以修改刚开始创建的对象,但不能修改在“网页工作”期间添加的对象 首先,我的想法是将AJAX添加到这个应用程序中,但我认为这不是最简单的方法 我想前一段时间(我不记得在哪里)我读过如何使这项工作,但现在我不知道。如果有人能帮我解决这个问题,或者至少给我一个链接,好的解释这个问题,我会非常高兴 到目前为止,我已经做了一些工作(好吧,这主要只是

我试图制作一个简单的列表,能够添加和删除元素。现在,我正在为每个列表元素对象(现有的和添加的)添加和执行一个简单的操作。不幸的是,我在这方面遇到了一些困难。我可以修改刚开始创建的对象,但不能修改在“网页工作”期间添加的对象

首先,我的想法是将AJAX添加到这个应用程序中,但我认为这不是最简单的方法

我想前一段时间(我不记得在哪里)我读过如何使这项工作,但现在我不知道。如果有人能帮我解决这个问题,或者至少给我一个链接,好的解释这个问题,我会非常高兴

到目前为止,我已经做了一些工作(好吧,这主要只是一个擦伤,但主要思想就在其中):

$(“li”)。单击(函数(){
$(本).text(“新文本”);
});
$(“#添加按钮”)。单击(函数(){
$(“.list”).append(
$('
  • ).append($('.append(“添加的li”)); });​

  • 感谢您的所有回复。

    您只需使用事件委派,并使用
    on()
    方法:

    $("ul").on('click','li', function() {
        $(this).text("OK");
    });
    

    您遇到的问题是jQuery只能直接将事件绑定到已经存在的元素(在事件绑定时存在);
    on()
    方法将操作绑定到添加新内容的元素(或新添加元素的祖先元素),标识要侦听的事件
    “单击”
    (以空格分隔的事件列表),这些事件与选择器(
    li
    )匹配,然后函数执行所需的操作

    如果您使用的是jQuery 1.7(或更高版本),则应使用
    on()
    ,而对于jQuery<1.7的版本,则应使用
    delegate()
    (其作用大致相同,但会反转事件列表和选择器参数):

    参考资料:


    您只需要使用事件委派,并使用
    on()
    方法:

    $("ul").on('click','li', function() {
        $(this).text("OK");
    });
    

    您遇到的问题是jQuery只能直接将事件绑定到已经存在的元素(在事件绑定时存在);
    on()
    方法将操作绑定到添加新内容的元素(或新添加元素的祖先元素),标识要侦听的事件
    “单击”
    (以空格分隔的事件列表),这些事件与选择器(
    li
    )匹配,然后函数执行所需的操作

    如果您使用的是jQuery 1.7(或更高版本),则应使用
    on()
    ,而对于jQuery<1.7的版本,则应使用
    delegate()
    (其作用大致相同,但会反转事件列表和选择器参数):

    参考资料:


    需要在此处使用事件委派。。 试试这个

    上一个click事件的问题是,事件仅附加到页面上的当前元素

    但是,创建新元素时,不会将任何事件附加到该元素

    你有两个选择。。或授权您的活动,即:;将事件侦听器添加到元素的祖先

    或在创建元素后添加事件

    第二种方法

    var clickEvent = function() {
        $('li').unbind().on('click', function() {
            $(this).text("OK");
        });
    }
    
    clickEvent();
    
    $("#addButton").click(function() {
        $(".list").append(
        $('<li>').append($('<span>').append("Press me - I am new!")));
        clickEvent();
    });​
    
    var clickEvent=function(){
    $('li').unbind().on('click',function()){
    $(此).text(“确定”);
    });
    }
    clickEvent();
    $(“#添加按钮”)。单击(函数(){
    $(“.list”).append(
    $(“
  • ”).append($('').append(“按我-我是新的!”)); clickEvent(); });​
  • 在第二种方法中,在添加新元素后,将绑定解除绑定并将新事件绑定到所有元素

    绑定和再次绑定事件是一种糟糕的设计模式


    此处需要使用事件委派。。 试试这个

    上一个click事件的问题是,事件仅附加到页面上的当前元素

    但是,创建新元素时,不会将任何事件附加到该元素

    你有两个选择。。或授权您的活动,即:;将事件侦听器添加到元素的祖先

    或在创建元素后添加事件

    第二种方法

    var clickEvent = function() {
        $('li').unbind().on('click', function() {
            $(this).text("OK");
        });
    }
    
    clickEvent();
    
    $("#addButton").click(function() {
        $(".list").append(
        $('<li>').append($('<span>').append("Press me - I am new!")));
        clickEvent();
    });​
    
    var clickEvent=function(){
    $('li').unbind().on('click',function()){
    $(此).text(“确定”);
    });
    }
    clickEvent();
    $(“#添加按钮”)。单击(函数(){
    $(“.list”).append(
    $(“
  • ”).append($('').append(“按我-我是新的!”)); clickEvent(); });​
  • 在第二种方法中,在添加新元素后,将绑定解除绑定并将新事件绑定到所有元素

    绑定和再次绑定事件是一种糟糕的设计模式


    非常感谢您对本主题的精彩解释。我只是在找这个。非常感谢你们对这个话题的精彩解释。我只是在找这个。
    var clickEvent = function() {
        $('li').unbind().on('click', function() {
            $(this).text("OK");
        });
    }
    
    clickEvent();
    
    $("#addButton").click(function() {
        $(".list").append(
        $('<li>').append($('<span>').append("Press me - I am new!")));
        clickEvent();
    });​