如何引起单击事件
How to cause a click event?
表单上有一个按钮,当单击该按钮时,会提供一些不同类型的下拉菜单。当窗体准备好时,如何在这些类型上引发单击事件?
这是我试过的,但是不工作。
<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();
}
相关文章:
- 如何使用2个事件单击1个日历
- 在 javascript 事件单击后清空输入
- 在元素 SVG 中使用 JavaScript 或 jQuery 进行事件单击
- fullCalendar动态事件单击行为
- 错误:'这'对象不正确;在JQuery中单击事件-单击时的意外行为
- 如何启用事件单击仅在指定的小时范围内
- 完整日历事件单击未触发
- 打开选择之前的事件.(单击工作速度不够快)
- 在 JavaScript 中,函数不会在事件单击时触发
- 主干分组依据集合仅在一次事件单击后呈现
- 如何禁用地图上的所有鼠标事件(单击、悬停等)
- Fullcalendar将图标添加到事件而不触发事件单击
- 在将JQuery对象添加到DOM之前,请将事件单击到JQuery对象
- 如何模拟拖动事件(单击鼠标移动按钮)
- 如果可编辑为 false,则全日历事件单击处理程序不起作用
- onclick事件单击时未添加类
- 事件单击Kml Placemark
- 事件单击时没有运行数据库
- 在事件单击函数中添加href url
- 创建元素和事件(单击)