Как приписать значение функции jquery click - PullRequest
4 голосов
/ 10 февраля 2020

Я хочу передать значение id элемента функции щелчка jquery.

Вот фрагмент кода

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);
  }

1 Ответ

6 голосов
/ 10 февраля 2020

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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...