Jquery всегда возвращает «jQuery.fn.init [глобальный]» . я не могу выбрать элементы

#javascript #html #jquery #electron

#javascript #HTML #jquery #электрон

Вопрос:

Как вы можете видеть в wifi.js файл существует функция щелчка для строк таблицы. Я думаю, это выглядит нормально. Это очень простая консоль.регистрируйте выбранную строку, верно? К сожалению, я не буду работать так, как ожидаю, что он всегда возвращает этот «jQuery.fn.init [глобальный]» на консоль, несмотря ни на что. Я не могу решить эту проблему с моими текущими знаниями.

wifi.js файл

 var wifi = require('node-wifi');
// Initialize wifi module
// Absolutely necessary even to set interface to null

var jQuery = function (selector, context) {

  // The jQuery object is actually just the init constructor 'enhanced'
  // Need init if jQuery is called (just allow error to be thrown if not included)
  return new jQuery.fn.init(selector, context);
};

let allNetworks = [];

// Scan networks
wifi.init({
  iface: null // network interface, choose a random wifi interface if set to null
});

setInterval(() => {}, 5000);

wifi.scan((error, networks) => {
  if (error) {
    console.log(error);
  } else {
    allNetworks = networks;
    let rows = [];

    $('#tbody').empty();

    allNetworks.map(network => {
      let row = `<tr><td>${network.mac}</td><td>${network.ssid}</td><td>${network.quality}</td><td>${network.signal_level}</td></tr>`;
      $("#tbody").append(row);
      rows.push(row);
    })

    $("tr").on("click", () => {
      console.log($(this));
    })
  }
});
 

это мой index.html

 <!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <script>
    if (typeof module === 'object') { window.module = module; module = undefined; } 
  </script>

  <!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->

  <script type="text/javascript" src="node_modules/jquery/dist/jquery.js"></script>
  <script>
    if (window.module) module = window.module;
  </script>

  <title>electronWifi!</title>
</head>

<body>
  <table>
    <thead>
      <tr><td>q</td><td>w</td><td>e</td><td>r</td></tr>
    </thead>
    <tbody id='tbody'>

    </tbody>
  </table>

  <!-- You can also require other files to run in this process -->
</body>

<script src="./renderer.js"></script>
<script src="src/wifi.js"></script>
</html>
 

Ответ №1:

Похоже, что прослушиватели событий не будут работать с функциями со стрелками, когда я изменяю код таким образом.

       $("tr").on("click", function () {
        console.log($(this));
      });

 

сработало как шарм