$(document).ready(function() {
$.ajax({
type: 'GET',
url: 'data.json',
dataType: 'json',
success: jsonParser
});
});
$(".btn_val1").click(function() {
function jsonParser(json) {
$.getJSON('data.json', function(data) {
$.each(data.dt.ld, function(k, v) {
var title = v.titleContent;
var img = v.image;
var txt = v.textContent;
$('.information_g').append('<p>' + txt + '</p>');
});
});
}
});
&#13;
运行脚本后,我收到此错误,我不知道问题所在:
未捕获的ReferenceError:未定义jsonParser
答案 0 :(得分:4)
问题是因为您仅在jsonParser()
点击处理程序的范围内定义了.btn_val1
函数。它必须在$.ajax
电话的范围内。
还要注意你的逻辑有点奇怪。您正在对data.json
进行AJAX调用,然后在该请求的success
处理程序中再次进行相同的调用。我建议您从$.getJSON()
内删除jsonParser()
来电。试试这个:
function jsonParser(data) {
$.each(data.dt.ld, function(k, v) {
var title = v.titleContent;
var img = v.image;
var txt = v.textContent;
$('.information_g').append('<p>' + txt + '</p>');
});
}
$(document).ready(function() {
$.ajax({
type: 'GET',
url: 'data.json',
dataType: 'json',
success: jsonParser
});
});
$(".btn_val1").click(function() {
// do something when this button is clicked...
});
答案 1 :(得分:1)
您的jsonParser
位于$(".btn_val1").click
内,因此只有在点击后才能访问 function jsonParser(json) {
$.getJSON('data.json', function(data) {
$.each(data.dt.ld, function(k, v) {
var title = v.titleContent;
var img = v.image;
var txt = v.textContent;
$('.information_g').append('<p>' + txt + '</p>');
});
});
}
。因此,您需要将其移出单击处理程序的范围。
var Twit = require('twit')
var T = new Twit({
consumer_key: '...',
consumer_secret: '...',
access_token: '...',
access_token_secret: '...'
})
答案 2 :(得分:0)
您尝试在定义之前传递函数。试试这个:
mydir <- "w:\\dir\\xx.doc"
print(mydir)
# w:\\dir\\xx.doc
cat(mydir)
# w:\dir\xx.doc
function jsonParser(data) {
$.each(data.dt.ld, function(k, v) {
var title = v.titleContent;
var img = v.image;
var txt = v.textContent;
$('.information_g').append('<p>' + txt + '</p>');
});
}
$(document).ready(function() {
$.ajax({
type: 'GET',
url: 'data.json',
dataType: 'json',
success: jsonParser
});
});
$(".btn_val1").click(function() {
// should it also call ajax request?
});