javascript - Trigger() 或 Change() 或 Click() 问题来定位那些具有您想要的特定值的按钮
问题描述
根据我从 StackOverflow 上的人那里看到的情况,这些函数似乎只针对具有特定 Id 或 Class 的特定元素,例如 ID 为 first 的按钮触发 ID 为 second 的按钮,而无需实际触摸第二个按钮。但我正在寻找一个做同样事情但通过 Val 而不是 id 或 class 因为我有多个按钮具有相同的类但有自己的价值。这是我的一段代码
$('<center class=\'centers\'><button class=\'command_button buttons\' value=\'Intro2/2\'>Next</button></center>').appendTo('#choicebox');
这是触发事件的按钮,它有一类按钮,但值为 Intro2/2
$(document).on('click', '.buttons', function() {
var button = $(this).val();
console.log('The Button is ' + button);
CL();
$('#container').scrollTop($('#container')[0].scrollHeight);
switch (button) {
// Go from Introduction 1/2 to Introduction 2/2.
case 'Intro2/2': {
clean();
CCEvents('Intro2/2');
} break;
如您所见,有一个 .on 函数可以查找任何具有 .buttons 类的元素的单击事件,一旦找到,它将获取该按钮的值并将其添加到按钮的变量中,然后使用它变量以在 switch/cases 中找到一个并将其与 Intro2/2 匹配,这将触发我想要的事件函数,即 CCEvents('Intro2/2')。
所有这一切都已经完成,但我正在尝试将其添加到我的地图系统中,但需要一些方法来触发按钮而不实际单击按钮或直接触发 CCEvents('Intro2/2')
这是我尝试使用触发器和单击,也许我不明白它是如何工作的,以及为什么当它可以使用这些功能时它不工作。
$("<button class=\'command_button buttons\' value=\'Intro2/2\'>Next</button>").trigger("click");
$(".buttons").val("Intro2/2").change();
$('.buttons').trigger('Intro2/2');
$(".buttons").val("Intro2/2").click();
$(".buttons").trigger("click", "Intro2/2");
解决方案
您可以使用属性选择器,例如$('.buttons[value="Intro2/2"]').click()
$('<center class=\'centers\'><button class=\'command_button buttons\' value=\'Intro2/2\'>Next</button></center>').appendTo('#choicebox');
$(document).on('click', '.buttons', function() {
var button = $(this).val();
console.log('The Button is ' + button);
})
$('.buttons[value="Intro2/2"]').click()
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="choicebox"></div>
推荐阅读
- javascript - 使用时间戳对数组进行排序并合并相似的日期
- asp.net - 无法将字节转换为字符串?
- c# - 播种大量数据(EF Core)
- laravel - 如何在 laravel QueryBuilder 中做到这一点
- javascript - 如何从模式提交按钮滚动到元素?
- apache-kafka - Kafka Streams DSL 折叠分层数据
- angularjs - 如何在角度 js 中使用带有标题的多选下拉菜单
- javascript - Kendo Grid 内联编辑日期范围验证
- python - 在 PyCharm 控制台模式下运行脚本时如何访问 sys.stdin
- javascript - 水平居中两个元素?