未定义 JS 查询
JS query not defined
所以我一直在通过 Whosebug 寻找类似的问题/答案,但一无所获,所以我打开了这个新问题,希望有人能帮助我。基本上我有一个 HTML 页面和一个 Javascript 页面。除此特定功能外,所有其他功能均正常工作。我认为问题与重新加载 DOM 有关,但我无法弄清楚问题所在。我的 HTML:
上有这个
<button id="advanced_search" onclick="query()">Advanced Search</button>
我的脚本中有这个:
document.addEventListener("DOMContentLoaded", function(e)
{
....
....
....
// V Everything inside here is fine, if I put this in the html page inside
// V a <script></script> it works fine.
function query() {
...
...
...
if(add_and != 0){
//Im using cypher to query my neo4j database.
queryStr = "match (n)-[r]->(m) where " + add_and.join(" ")+ " return
n,r,m";
} else {
queryStr = 'match (n)-[r]->(m) return n,r,m';
}
}
// side problem: the queryStr doesn't change from function query to var jqxhr
var jqxhr = $.post(neo4jAPIURL, '{"statements":[{"statement":"' + queryStr + '", "resultDataContents":["graph"]}]}',
function(data) {
...
... // some d3.js stuff inside
...
}
我的问题是它说函数 query() 未定义
在 HTMLButtonElement.onclick,即使我正在调用函数:
<script src="/scripts/force_directed_layout.js"></script>
预期的结果是当我按下 <button id="advanced_search">
时,函数应该 运行 正常,但事实并非如此。如果有人能帮助我,那就太好了。
您在侦听器函数中定义查询函数。所以它在这个函数的范围之外是不可见的。如果你想直接调用该方法'from the button',那么你必须将它附加到window
。您可以添加
window.query = query;
查询函数声明后的语句。
虽然安德烈亚斯的回答是正确的,但我想添加一个备选方案
您可以直接在您的 JS 文件中绑定点击,而不是 HTML
喜欢
document.getElementById('advanced_search').addEventListener("click", query);
所以我一直在通过 Whosebug 寻找类似的问题/答案,但一无所获,所以我打开了这个新问题,希望有人能帮助我。基本上我有一个 HTML 页面和一个 Javascript 页面。除此特定功能外,所有其他功能均正常工作。我认为问题与重新加载 DOM 有关,但我无法弄清楚问题所在。我的 HTML:
上有这个<button id="advanced_search" onclick="query()">Advanced Search</button>
我的脚本中有这个:
document.addEventListener("DOMContentLoaded", function(e)
{
....
....
....
// V Everything inside here is fine, if I put this in the html page inside
// V a <script></script> it works fine.
function query() {
...
...
...
if(add_and != 0){
//Im using cypher to query my neo4j database.
queryStr = "match (n)-[r]->(m) where " + add_and.join(" ")+ " return
n,r,m";
} else {
queryStr = 'match (n)-[r]->(m) return n,r,m';
}
}
// side problem: the queryStr doesn't change from function query to var jqxhr
var jqxhr = $.post(neo4jAPIURL, '{"statements":[{"statement":"' + queryStr + '", "resultDataContents":["graph"]}]}',
function(data) {
...
... // some d3.js stuff inside
...
}
我的问题是它说函数 query() 未定义 在 HTMLButtonElement.onclick,即使我正在调用函数:
<script src="/scripts/force_directed_layout.js"></script>
预期的结果是当我按下 <button id="advanced_search">
时,函数应该 运行 正常,但事实并非如此。如果有人能帮助我,那就太好了。
您在侦听器函数中定义查询函数。所以它在这个函数的范围之外是不可见的。如果你想直接调用该方法'from the button',那么你必须将它附加到window
。您可以添加
window.query = query;
查询函数声明后的语句。
虽然安德烈亚斯的回答是正确的,但我想添加一个备选方案
您可以直接在您的 JS 文件中绑定点击,而不是 HTML
喜欢
document.getElementById('advanced_search').addEventListener("click", query);