我在下面有这个js和qunit测试。为什么浏览器给我的listClasses没有定义?如何解决。我看到大部分
function ajax() {
$.ajax({
});}
但是,如果我喜欢下面的测试方法?
$('#MregisteredClasses').on('pageinit', function listClasses(){
var rowInput = "1";
var pageInput = "1";
$.ajax({
url: 'http://137.57.102.146:8080/Training/getRegisteredClassesData.html',
data: ( {rows : rowInput , page : pageInput}),
type: 'POST',
success: function(json_results){
$('#list').append('<ul data-role="listview" data-inset="true"</ul>');
listItems = $('#list').find('ul');
$.each(json_results.rows, function(key) {
html = "<li data-mini='true' id='icon'><a href='http://137.57.102.146:8080/Training/MRegisteredClassesDetail.phone?courseId="
+ [json_results.rows[key].courseId] + "®No=" + [json_results.rows[key].regNo] +
"' rel='external'>" + json_results.rows[key].courseName+ "</a>"
+ "<a href='http://137.57.102.146:8080/Training/MRateCourse.phone?courseId="
+ [json_results.rows[key].courseId] + "®No=" + [json_results.rows[key].regNo] +
"' rel='external'>RATE THIS COURSE</a></li>" ;
listItems.append(html);
});
$('#list ul').listview();
},
});
});
这是qunit测试
test('asynchronous test', function() {
// Pause the test, and fail it if start() isn't called after one second
stop();
listClasses(function() {
// ...asynchronous assertions
ok(true, "Success");
});
setTimeout(function() {
start();
}, 2000);
});
最佳答案
$('#MregisteredClasses').on('pageinit', function listClasses(){ ...
使用不正确。
该函数要么需要匿名(即删除listClasses
位),否则运行listClasses()
将会失败。
您需要做的是外部化函数声明。
即:
function listClasses(){
var rowInput = "1";
var pageInput = "1";
$.ajax({
url: 'http://137.57.102.146:8080/Training/getRegisteredClassesData.html',
data: ( {rows : rowInput , page : pageInput}),
type: 'POST',
success: function(json_results){
$('#list').append('<ul data-role="listview" data-inset="true"</ul>');
listItems = $('#list').find('ul');
$.each(json_results.rows, function(key) {
html = "<li data-mini='true' id='icon'><a href='http://137.57.102.146:8080/Training/MRegisteredClassesDetail.phone?courseId="
+ [json_results.rows[key].courseId] + "®No=" + [json_results.rows[key].regNo] +
"' rel='external'>" + json_results.rows[key].courseName+ "</a>"
+ "<a href='http://137.57.102.146:8080/Training/MRateCourse.phone?courseId="
+ [json_results.rows[key].courseId] + "®No=" + [json_results.rows[key].regNo] +
"' rel='external'>RATE THIS COURSE</a></li>" ;
listItems.append(html);
});
$('#list ul').listview();
}
});
}
然后从
on
命令调用该函数:$('#MregisteredClasses').on('pageinit', listClasses)
假设您的脚本仅在
listClasses()
上失败,那么我认为listClasses
名称只是默默删除。