javascript - 从不同按钮调用 JS/jQuery 函数的问题
问题描述
所以我不确定我是否做错了什么,但为什么我不能为每个呼叫使用第二个按钮(基于按钮 ID)?
我试图在谷歌上搜索运行多个函数调用实例,但没有出现任何相关信息。
我计划在我正在构建的页面上大量使用此按钮,大约 10 个实例。
$(function(){
$('#consoleLog').on('click', function(){
var dataVar = $(this).attr('data-href');
consoleLog(dataVar);
});
document.getElementById("consoleLog2").addEventListener("click", function(){
var dataVar = $(this).attr('data-href');
consoleLog(dataVar);
});
});
function consoleLog(dataVar) {
console.log(dataVar);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="btn btn-default" id="consoleLog" type="button" data-href="This is a test.">Console Log</button>
<button class="btn btn-default" id="consoleLog" type="button" data-href="This is a test, again.">Console Log v1.2</button>
<button class="btn btn-default" id="consoleLog2" type="button" data-href="This is another test.">Console Log v2</button>
<button class="btn btn-default" id="consoleLog2" type="button" data-href="This is another test, again.">Console Log v2.2</button>
解决方案
不要在多个元素中使用相同的 id。Id 应该是唯一的属性。将其用作类并实现该类的事件侦听器。
$(function(){
$('.consoleLog').on('click', function(){
var dataVar = $(this).attr('data-href');
consoleLog(dataVar);
});
$('.consoleLog2').on('click', function(){
var dataVar = $(this).attr('data-href');
consoleLog(dataVar);
});
});
function consoleLog(dataVar) {
console.log(dataVar);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="btn btn-default consoleLog" id="consoleLog" type="button" data-href="This is a test.">Console Log</button>
<button class="btn btn-default consoleLog" id="consoleLog1" type="button" data-href="This is a test, again.">Console Log v1.2</button>
<button class="btn btn-default consoleLog2" id="consoleLog2" type="button" data-href="This is another test.">Console Log v2</button>
<button class="btn btn-default consoleLog2" id="consoleLog3" type="button" data-href="This is another test, again.">Console Log v2.2</button>
推荐阅读
- javascript - 如何在本地将 CSS 和 JS 连接到 Chromium Delphi?
- javascript - js创建地图对象
- three.js - Threejs:在片段着色器中计算投影坐标
- php - 在 Laravel Blade 中选择布尔类型
- database - 数据库可以同时处理更新或写入吗?
- adb - 如何使用 ADB 命令查看应用程序包名称?
- sql - SQL Server:从日期减去一年的表中选择*
- javascript - 从带有子字段的平面列表构造层次结构树并保留子顺序?
- matlab - Matlab求和计算
- java - 如何升级 javax.naming.* 和 javax.xml.* 导入以与 java 10 兼容