Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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/3/html/74.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(ul)列表的方法吗_Jquery_Html - Fatal编程技术网

Jquery 需要一种将函数添加到不断变化的html(ul)列表的方法吗

Jquery 需要一种将函数添加到不断变化的html(ul)列表的方法吗,jquery,html,Jquery,Html,我一直在考虑如何在本身的上的“.click()”事件中添加函数。第一件事很简单(这是近似的,显然我不是jquery专业人士) $(文档)。准备好了吗( 函数(){ $('.prodli').each().click(//prodli是我在每个 函数(){ //布拉布拉 } ); } ); 但是!因为总有一个地方。。。问题是这些可以通过另一个jquery脚本删除和添加 因此,如果我应用我在列表上写的上一个脚本: <ul> <li productId="1" class=

我一直在考虑如何在
本身的
  • 上的“.click()”事件中添加函数。第一件事很简单(这是近似的,显然我不是jquery专业人士)

    $(文档)。准备好了吗(
    函数(){
    $('.prodli').each().click(//prodli是我在每个
  • 函数(){ //布拉布拉 } ); } );
  • 但是!因为总有一个地方。。。问题是这些
  • 可以通过另一个jquery脚本删除和添加

    因此,如果我应用我在列表上写的上一个脚本:

    <ul>
        <li productId="1" class="prodli">Product 1</li>
        <li productId="2" class="prodli">Product 2</li>
        <li productId="3" class="prodli">Product 3</li>
        <li productId="4" class="prodli">Product 4</li>
        <li productId="5" class="prodli">Product 5</li>
        <li productId="6" class="prodli">Product 6</li>
    </ul>
    
    • 产品1
    • 产品2
    • 产品3
    • 产品4
    • 产品5
    • 产品6
    我想如果使用其他脚本,我会将列表更新为

    <ul>
        <li productId="455" class="prodli">Product 455</li>
        <li productId="48" class="prodli">Product 48</li>
        <li productId="7" class="prodli">Product 7</li>
    </ul>
    
    • 产品455
    • 产品48
    • 产品7
    我应该重新调用我的第一个脚本,将
    click()
    函数应用于这些新的
  • ,对吗

    有没有一种更全球化的方式?我的意思是“每次单击类为“prodli”的元素时,应用此函数”?或者类似于此特定
    列表中的每个

  • 谢谢大家

    您可以将单击事件委托给父
    ul
    元素(或任何其他祖先元素)。由于DOM事件往往会在树上冒泡,因此在子元素上的任何单击都会到达
    ul
    ,并且可以在那里进行处理

    jQuery提供了执行此操作的方法(如果您使用的是较旧版本的jQuery,则需要使用它,而不是上的
    ):


    这意味着
    ul
    的子项可以随意更改。这不会有什么不同。点击
    ul
    的任何子代都会弹出
    ul
    。jQuery检查单击是否源自与选择器匹配的元素(在本例中为any
    .prodli
    元素),如果是,则执行事件处理程序。

    如果使用$(this),则使用这种方式,它是
  • 元素还是
      ?我猜是,但我不确定。谢谢你的帮助。@MichaelDeKeyser-没问题。是的,
      将引用单击的
      li
      元素。谢谢您,先生。你救了我:没问题,很高兴我能帮忙:)
      <ul>
          <li productId="455" class="prodli">Product 455</li>
          <li productId="48" class="prodli">Product 48</li>
          <li productId="7" class="prodli">Product 7</li>
      </ul>
      
      $("ul").on("click", ".prodli", function() {
          //Do stuff
      });