javascript - 如何将值归因于jquery click函数

标签 javascript jquery html css

我想将元素的 id 值传递给 jquery click 函数。

这是代码片段

function maintest() {
   var buttonElem = $('<button>').attr({"id" : "buttonMain" }).css ({"cursor" :"pointer"}).text("Click me!").click(function() {
      buttonClicked ();
   });
   
   $("#mainDiv").append(buttonElem);
  }
   
  
  function  buttonClicked () {
    alert("button clicked");
  }
<html>
<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body onload ="maintest()">
  <div id="mainDiv"></div>
</body>
</html>

我想将 id 值“buttonMain”传递给“buttonClicked”函数,

这是我尝试过的


function maintest() {
   var buttonElem = $('<button>').attr({"id" : "buttonMain" }).css ({"cursor" :"pointer"}).text("Click me!").click(function(this.id) {
      buttonClicked (this.id);
   });

   $("#mainDiv").append(buttonElem);
  }


  function  buttonClicked (elem) {
    alert("button clicked");
    alert("passed elem id value"+ elem);
  }

最佳答案

this.id 不应出现在函数参数列表中。 this 是隐式传递的,点击处理函数的第一个参数是 Event 对象。

function maintest() {
  var buttonElem = $('<button>').attr({
    "id": "buttonMain"
  }).css({
    "cursor": "pointer"
  }).text("Click me!").click(function() {
    buttonClicked(this.id);
  });

  $("#mainDiv").append(buttonElem);
}

function buttonClicked(elem) {
  console.log("button clicked");
  console.log("passed elem id value "+ elem);
}
<html>

<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>

<body onload="maintest()">
  <div id="mainDiv"></div>
</body>

</html>

关于javascript - 如何将值归因于jquery click函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60149332/

相关文章:

javascript - .done ajax 给我一个错误

html - 如何将div背景置于其内容之上

javascript - 如何使用 javascript 以 YYYYMMDDHHMMSS 格式创建日期?

javascript - 如何调用javascript变量 "like class"

javascript - 可以使用 JavaScript 捕获窗口/选项卡关闭吗?

html - 强制链接匹配图像大小而不在CSS中 float

javascript - JSON 中第 40 位的意外标记 t

php - 如何验证外部 php 文件中的 jQuery/AJAX 输入值并返回结果?

javascript - 如何补偿滚动时android移动浏览器的隐藏地址栏?如何在所有浏览器中正确测量 'vh'?

javascript - 使用 JavaScript/jQuery 进行棘手的 Sprite 运动控制