触发方法在 jQuery 中不起作用

trigger method not working in jQuery

我有一个页面有大约 100 个像这样的 div。

<div id="ListItem_JBEEB_847">
  <span title="-HD">
      <span>F</span>
      <span style="pointer-events: none;">-HD</span>
  </span>
</div>

ID 编号不同。我正在尝试通过 jQuery 一个一个地点击这个 div/or 垃圾邮件。所以,我做了一个这样的循环..

$('div').each(function(){
     div = $(this).attr('id');
     if(div){
        if(div.includes('ListItem_JBEEB')){ 
            get_div = jQuery("#" + div).trigger('click'); 
         }
      }
});

上面的代码应该可以工作,但由于某些原因不能。它适用于样式和所有其他 DOM 操作,例如通过更改文本颜色 jQuery("#" + div).css({'color': 'red'}) 所以循环没问题,我也尝试使用 jQuery("#" + div).find('span').trigger('click') 来定位跨度,但没有任何反应。

顺便说一句:在网站上,如果您单击任何一个 div,会立即向您显示更多信息,但是这一切都没有改变,我不确定触发点击是否有效

您必须在调用之前初始化点击事件,您必须在调用之前检查特定的点击事件是否已经初始化,否则它不会执行点击事件。
例如

// THIS WILL WORK
$(document).ready(function() {
    jQuery("#ListItem_JBEEB_847").click(function(){
        alert('a');
    });
    $('div').each(function(){
        div = $(this).attr('id');
        if(div){
            if(div.includes('ListItem_JBEEB')){ 
                jQuery("#" + div).click(); 
            }   
        }
    });
});

// THIS WILL NOT WORK
$(document).ready(function() {
    $('div').each(function(){
    div = $(this).attr('id');
    if(div){
        if(div.includes('ListItem_JBEEB')){ 
            jQuery("#" + div).click(); 
        }
    }
    });
    jQuery("#ListItem_JBEEB_847").click(function(){
        alert('a');
    });
});

这是您的代码的更新版本。您可以使用 $(this).trigger('click') 代替 jQuery("#" + div).trigger('click'),并单独定义 click 事件应该发生什么。

$(document).ready(function() {
  $('div').each(function() {
    div = $(this).attr('id');
    if (div && div.includes('ListItem_JBEEB')) {
      $(this).trigger('click');
    }
  });
});

$('div').on('click', function() {
  console.log($(this).attr('id') + ' got clicked..');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="ListItem_JBEEB_847">
  <span title="-HD">
      <span>F</span>
  <span style="pointer-events: none;">-HD</span>
  </span>
</div>
<div id="ListItem_JBEEB_848">
  <span title="-HD">
      <span>F</span>
  <span style="pointer-events: none;">-HD-1</span>
  </span>
</div>
<div id="ListItem_JBEEB_849">
  <span title="-HD">
      <span>F</span>
  <span style="pointer-events: none;">-HD-2</span>
  </span>
</div>