Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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
Jquery 如何将事件绑定到页面加载后生成的HTML?_Jquery - Fatal编程技术网

Jquery 如何将事件绑定到页面加载后生成的HTML?

Jquery 如何将事件绑定到页面加载后生成的HTML?,jquery,Jquery,我正在使用jquery.clone()根据用户的点击向我的页面添加HTML 我想将onclick处理程序添加到新创建的HTML中。我知道可以用来触发将来创建的HTML上的事件,但我相信必须在创建HTML之前编写(并执行) 在这种情况下,如果用户从选择列表中选择“related_id”,jquery将创建一个字段,用户可以在其中输入id。我想在这里添加一个ajaxy,这样用户可以键入相关项的名称而不是其id。ajax请求将取决于用户选择的字段 一般来说,我知道如何使用jquery发出ajax请求,

我正在使用jquery
.clone()
根据用户的点击向我的页面添加HTML

我想将onclick处理程序添加到新创建的HTML中。我知道可以用来触发将来创建的HTML上的事件,但我相信必须在创建HTML之前编写(并执行)

在这种情况下,如果用户从选择列表中选择“related_id”,jquery将创建一个字段,用户可以在其中输入id。我想在这里添加一个ajaxy,这样用户可以键入相关项的名称而不是其id。ajax请求将取决于用户选择的字段


一般来说,我知道如何使用jquery发出ajax请求,但是如何将特定于字段的ajax代码添加到新创建的HTML中?

您可以插入
。。。您的jquery代码在这里
标记以及HTML的其余部分。

您可以插入一个
。。。这里的jquery代码
标记以及HTML的其余部分。

为什么不在将处理程序添加到文档之前将其绑定到
$clone

$clone.on("change", function(){
  //Do my AJAX  
});

为什么不在将处理程序添加到文档之前将其绑定到
$clone

$clone.on("change", function(){
  //Do my AJAX  
});

您的JSFIDLE中有大量代码,其中大部分与这个问题无关。无论如何,如果我理解正确的话,你想要澄清的是相当高的层次

我要做的第一件事是确保在所有新元素中包含一个公共的
类。然后,您将使用
.on()
绑定到单击事件,如下所示:

$("#parentElement").on('click','.newClass', function() {
    var me = $(this).text(); //gets the specific text from each .newClass element when clicked
    doAjaxRequest( me );
}
$("#parentElement").delegate('.newClass', 'click', function() {
    var me = $(this).text(); //gets the specific text from each .newClass element when clicked
    doAjaxRequest( me );
}
注意:在创建此单击处理程序之前,DOM中必须存在父元素

您的
doAjaxRequest
函数将具有以下内容:

function doAjaxRequest( elemText ) {
    $.ajax({
        ...
        data: elemText,
        ...
    });
}

注意:从jQuery 1.7开始,
.on()
就可用于此功能。对于旧版本,请参见以下内容:

对于版本1.4.4。守则如下:

$("#parentElement").on('click','.newClass', function() {
    var me = $(this).text(); //gets the specific text from each .newClass element when clicked
    doAjaxRequest( me );
}
$("#parentElement").delegate('.newClass', 'click', function() {
    var me = $(this).text(); //gets the specific text from each .newClass element when clicked
    doAjaxRequest( me );
}

您的JSFIDLE中有大量代码,其中大部分与这个问题无关。无论如何,如果我理解正确的话,你想要澄清的是相当高的层次

我要做的第一件事是确保在所有新元素中包含一个公共的
类。然后,您将使用
.on()
绑定到单击事件,如下所示:

$("#parentElement").on('click','.newClass', function() {
    var me = $(this).text(); //gets the specific text from each .newClass element when clicked
    doAjaxRequest( me );
}
$("#parentElement").delegate('.newClass', 'click', function() {
    var me = $(this).text(); //gets the specific text from each .newClass element when clicked
    doAjaxRequest( me );
}
注意:在创建此单击处理程序之前,DOM中必须存在父元素

您的
doAjaxRequest
函数将具有以下内容:

function doAjaxRequest( elemText ) {
    $.ajax({
        ...
        data: elemText,
        ...
    });
}

注意:从jQuery 1.7开始,
.on()
就可用于此功能。对于旧版本,请参见以下内容:

对于版本1.4.4。守则如下:

$("#parentElement").on('click','.newClass', function() {
    var me = $(this).text(); //gets the specific text from each .newClass element when clicked
    doAjaxRequest( me );
}
$("#parentElement").delegate('.newClass', 'click', function() {
    var me = $(this).text(); //gets the specific text from each .newClass element when clicked
    doAjaxRequest( me );
}

你的标题与问题无关,我建议你修改它以更准确地表达你的问题。你的标题与问题无关,我建议你修改它以更准确地表达你的问题。根据所选的项目,查询将(稍微)不同。这有一个解决方法。如果使用特定id创建,脚本中的代码也可以引用该id。附加类似于
“$(\”“+elementId+“\”).stuff()“
”的内容。根据所选的项目,查询将(稍微)有所不同。有一种解决方法。如果使用特定id创建,脚本中的代码也可以引用该id。附加类似于
“$(\”“+elementId+“\”).stuff()”
.hmmm。。。在“DoMyAjax”部分,我需要根据所选内容编写AJAX;我将尝试一下,看看它是否能工作。console会不断报告。on不是函数,但bind()工作正常。是的;我们正在使用1.4.4hmmm版本。。。在“DoMyAjax”部分,我需要根据所选内容编写AJAX;我将尝试一下,看看它是否能工作。console会不断报告。on不是函数,但bind()工作正常。是的;我们使用的是版本1.4.4I,我假设您希望在单击元素时发出ajax请求。如果我误解了你,请告诉我。谢谢你的更新;你的回答很好,甚至更好。。值两张绿色支票@thunder没问题,很乐意帮助:)我假设您希望在单击元素时发出ajax请求。如果我误解了你,请告诉我。谢谢你的更新;你的回答很好,甚至更好。。值两张绿色支票@没问题,很乐意帮忙:)