如何引起单击事件

How to cause a click event?

本文关键字:事件 单击 何引起      更新时间:2023-09-26

表单上有一个按钮,当单击该按钮时,会提供一些不同类型的下拉菜单。当窗体准备好时,如何在这些类型上引发单击事件?

这是我试过的,但是不工作。

<script>
    $( document ).ready(function() {
        document.getElementsByClassName("advanced-search-add-text-row").click();
    });
</script>
  <div class="btn-group">
    <a class="btn btn-success dropdown-toggle advanced-search-add-row-dropdown" data-toggle="dropdown" href="#">
      <span class="glyphicon glyphicon-plus glyphicon-white"></span>
      <span class="caret"></span>
    </a>
    <ul class="dropdown-menu pull-right">
      <li><%= link_to I18n.t("advanced_search.type.text"), "javascript:void(0)", :class => "advanced-search-add-row advanced-search-add-text-row", "data-type" => "text" %></li>
      <li><%= link_to I18n.t("advanced_search.type.date"), "javascript:void(0)", :class => "advanced-search-add-row advanced-search-add-date-row", "data-type" => "date" %></li>
      <li><%= link_to I18n.t("advanced_search.type.boolean"), "javascript:void(0)", :class => "advanced-search-add-row advanced-search-add-bool-row", "data-type" => "boolean" %></li>
        <li><%= link_to I18n.t("advanced_search.type.controlled_value"), "javascript:void(0)", :class => "advanced-search-add-row advanced-search-add-enum-row", "data-type" => "enum" %></li>
    </ul>
  </div>

创建行的javascript:

  $advancedSearchContainer.on("click", ".advanced-search-add-row", function(event) {
    event.stopPropagation();
    event.preventDefault();
    var index = $("input[id^='v']", $advancedSearchRowContainer).length;
    var adding_as_first_row = false;
    if (index == 0) {
      adding_as_first_row = true;
    }
    while ($(":input[name='f"+index+"']", $advancedSearchContainer).length > 0) {
      index += 1;
    }
    addAdvancedSearchRow(index, $(this).data("type"), adding_as_first_row, {});
    // hide the drop down menu after clicking an option
    $(this).closest(".dropdown-menu").siblings(".advanced-search-add-row-dropdown").trigger("click");
  });

getElementsByClassName返回HTMLCollection.

所以改变行:

document.getElementsByClassName("advanced-search-add-text-row").click();

:

document.getElementsByClassName("advanced-search-add-text-row")[0].click();
相反,使用jQuery你可以这样写:
$(".advanced-search-add-text-row").trigger('click');

getElementsbyClassName返回一个数组!你不能对整个数组执行click函数,你需要点击每一个元素:

elems=document.getElementsByClassName("class");
for(i=0;i<elems.length;i++){
elems[i].click();
}