javascript - 如何通过 html 元素上的单击事件侦听器传递参数?
问题描述
<li>
当用户从我的下拉菜单中单击一个元素时,我想将year
,month
和dashUid
变量传递给 on-click 调用的函数。我怎么做?
我知道在对象上使用事件侦听器时如何传递参数,但不确定如何使用 html 元素来传递参数。也许有一个Jquery函数?
下拉菜单:
function createCalendarDropdown(ChartObject) {
$("#navDropCalendar li").remove();
var dashUid = ChartObject.d.chartData[0].chartUid;
var dates = ChartObject.d.chartData[0].chartSeries[0].chartLabelX;
var january, february, march, april, may, june, july, august, september, october, november, december;
january = february = march = april = may = june = july = august = september = october = november = december = false;
for (i = 0; i < dates.length; i++) {
var splitDate = dates[i].replace(/\//g, "-").split("-");
var month = splitDate[1];
var year = splitDate[2];
if (month == "01" && january == false) {
$("#navDropCalendar").append('<li><a id="january" class="nd-class" href="javascript:userClicksMonth(month, year, dashUid);">January ' + year + '</a></li>')
january = true;
continue;
}
if (month == "02" && february == false) {
$("#navDropCalendar").append('<li><a id="february" class="nd-class" href="javascript:userClicksMonth(month, year, dashUid);">February ' + year + '</a></li>')
february = true;
continue;
}
[... all the way to december]
onclick 函数(我想要month
,year
并dashUid
传递给这个函数):
function userClicksMonth(month, year, dashUid) {
$("#navDropCalendar .nd-class").click(function (e) {
[somecode]
}
解决方案
您可以添加自定义属性并在其中设置您的值。
$("#navDropCalendar").append('<li><a id="february" class="nd-class" href="javascript:userClicksMonth(month, year, dashUid);" data-month="'+ month +'" data-year="'+ year+'" data-dashuid="'+ dashUid+'">February ' + year + '</a></li>');
可以在您的函数中读取,例如
function userClicksMonth(month, year, dashUid) {
$("#navDropCalendar .nd-class").click(function (e) {
var _cMonth = $(this).attr("data-month");
var _cYear = $(this).attr("data-year");
var _cDashUid = $(this).attr("data-dashuid");
})
}
推荐阅读
- sql - result_fetch(res@ptr, n) 中的错误:nanodbc/nanodbc.cpp:2695:24000:[Microsoft][ODBC SQL Server Driver]游标状态无效
- python - 在熊猫图中显示第一个和最后一个标签
- python - VS Code .py ModuelNotFoundError 没有名为“pyodbc”的模块
- java - 如何在 Android Studio 中自动增加 TextView 的值
- c# - ASP NET MVC - 默认情况下全局禁用 OutputCache
- linux - 如何获取 flac 和 ogg 的音频文件元数据容器的数据
- node.js - 如何获得正确的 NodeJS Child Process.spawn 输出
- javascript - 使用反应返回到分页中的当前页面
- docker - docker run - autokill 容器已经在使用?
- html - 即使未满足 minlength 也提交表单