首页 > 解决方案 > 如何通过 html 元素上的单击事件侦听器传递参数?

问题描述

<li>当用户从我的下拉菜单中单击一个元素时,我想将year,monthdashUid变量传递给 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 函数(我想要monthyeardashUid传递给这个函数):

function userClicksMonth(month, year, dashUid) {
$("#navDropCalendar .nd-class").click(function (e) {
  [somecode]
}

标签: javascripthtmlasp.netevent-handlingaddeventlistener

解决方案


您可以添加自定义属性并在其中设置您的值。

$("#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");
   })
}

推荐阅读