【问题标题】:jquery not working well on node-webkitjquery 在 node-webkit 上无法正常工作
【发布时间】:2017-11-09 14:32:06
【问题描述】:

我正在以 nodejs 初学者的身份练习 node-webkit。
我的主页是一个简单的html 页面,包括一个main.js 脚本

我已经使用npm install jquery安装了 jquery

index.html

<!-- index.html -->
...
<script src="js/main.js"></script>
</head>
<body>
<div id="demo">Hi! </div>
</body>
</html>

main.js

// main.js
const $ = require('jquery')

$(document).ready(function () {
  $('#demo').click(function () {
    $(this).text($(this).text() + 'Hi! ')
  })
})

如果我在 index.html 中加载 jquery 就像 &lt;script src="path/to/jquery.js"&gt;&lt;/script&gt; 一样,它运行良好,但如果我在 main.js 中需要 jquery,它不会!

我已经测试过了:

  • main.js 正确包含和使用原生 js 方法(如 document.getElementById('demo').onclick = ...
  • 其他节点模块或库,如vuelodash 或像fsurl 这样的原生模块运行良好。所以 require 函数效果很好。
  • 虽然我需要如上所述的 jquery,但内联 &lt;script&gt;s 也不能正常工作。

我还意识到$(document).ready(...) 有效!但真正的问题是$('#demo') 是未定义的! (我检查了控制台-我使用的是node-webkit的SDK版本)

我不知道是因为 node-webkit 还是我缺少的其他东西?

【问题讨论】:

    标签: javascript jquery node.js node-webkit


    【解决方案1】:

    找到了解决办法, 我应该这样定义 jquery:

    window.$ = window.jQuery = require('jquery')
    

    这仅仅是因为 ECMAS 中的变量范围

    所以如果我这样定义它,我可以在任何地方使用它

    【讨论】:

    • 代码正在运行,但是...... $('elementSelector').html() 不起作用。任何线索为什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2021-10-22
    • 1970-01-01
    • 2012-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多