【发布时间】:2016-10-10 14:37:46
【问题描述】:
我正在用 JavaScript(使用 jQuery 和 Knockout)和 HTML 编写一个小代码,它接受用户输入(GitHub 用户名),检查输入是否对 GitHub api 有效,并显示用户的 GitHub 头像和用户名(链接到GitHub 上的匹配配置文件)。显示替换用户输入用户名的表单。
用户输入前的原始 HTML 为:
<div id="inputSection">
<form>
<p>
GitHub Username:
<input type="text" name="username" value="" placeholder="username" id="un"/>
<button type="button" id="submitButton">Login</button>
</p>
</form>
</div>
替换它的代码是这样的:
$("#submitButton").click(function() {
var username = document.getElementById('un').value;
var inputForm = $(document.getElementById('inputSection'));
$.ajax( {
...
success: function () {
alert("Welcome, " + username);
var userURL = 'https://github.com/' + username;
var inputContent = $('<a data-bind="attr: {href: userURL}"><img data-bind="attr: {src: avatar_url}" height=\"30\" width=\"30\"/>' + username + '</a>');
$(inputForm.replaceWith(inputContent));
}
});
});
这似乎在大多数情况下都有效。警报通过用户名欢迎用户后,表单将从网页中消失。它被用户名取代,用户名的格式类似于链接。但是,它不能作为一个。单击它不会执行任何操作。另外,用户的头像虽然在网页上显示了一个设置大小的框,但并没有出现。
解决方案可能非常简单明了,但由于我这周才开始学习这些语言和库,我不确定出了什么问题。 Knockout 应该在调用 JavaScript 页面的 HTML 页面上运行,并且 ajax 正在处理其他函数,所以我认为这很好。值“avatar_url”是使用 ajax 在https://api.github.com/users 请求的 api 的一部分。
我尝试了各种不同的方法,但都没有效果。如果您想了解更多信息或有建议使这个问题变得更好,请发表评论。我是编码和 Stack Overflow 的新手,但我想让我的程序和我的问题尽可能好。感谢您的宝贵时间。
编辑: 1. 原来我没有给图片设置大小,导致图片为0x0。这已得到纠正,尽管图像本身仍然不显示。 2. 当我第一次输入我的代码时,我试图通过排除某些变量已为其他不相关部分重命名的位置并仅使所有名称在两个相关的 sn-ps 之间匹配来使其更易于阅读。我没有全部抓到。他们现在应该都匹配了。
【问题讨论】:
标签: javascript jquery html ajax knockout.js