如果param的值是硬编码的,那么代码工作正常,就好像从输入字段获取值,然后函数getResults()
没有显示结果(但是警告显示该值已经已成功提供给param
)。请指导。
<script type="text/javascript">
var nexturl ="";
var lastid ="";
$(document).ready(function() {
//$("#search").keyup(function() {
//$('#hit').click(function() {
//var param = $("#search").val();
$("#search").keypress(function(e) {
if(e.which == 13) {
var param = $('#search').val();
alert(param);
}
});
//$(document).ready(function() {
//var param = "Facebook";
if (param != "") {
$("#status").show();
var u = 'https://graph.facebook.com/search/?callback=&limit=25&q='+param;
getResults(u);
};
$("#more").click(function () {
$("#status").show();
$("#more").hide();
pageTracker._trackPageview('/?q=/more');
var u = nexturl;
getResults(u);
});
//};
});
</script>
修改
<script type="text/javascript">
var nexturl ="";
var lastid ="";
var param;
$(document).ready(function() {
$("#search").keypress(function(e) {
var param = $('#search').val();
if (param != "") {
$("#status").show();
var u = 'https://graph.facebook.com/search/?callback=&limit=25&q='+param;
getResults(u);
}
});
};
$("#more").click(function () {
$("#status").show();
$("#more").hide();
pageTracker._trackPageview('/?q=/more');
var u = nexturl;
getResults(u);
});
});
</script>
答案 0 :(得分:0)
看看你的变量范围。 var param
在.keypress
函数中定义,因此其范围是该函数的本地范围,它不能被下面的其他代码访问(其范围在(document).ready
)
还要考虑即使它具有全局范围,您的代码仍然无法正常工作,因为getResults()
在加载时执行,.keypress
函数显然不会执行,直到按下某个键{ {1}}。
您最好的选择可能是在#search
之前定义它:
getResults()
答案 1 :(得分:0)
进一步思考(见评论)。
定义一个全局参数:
var param = "";
然后在你的jQuery准备好之内,将值赋给param,就像这样..
param = somevalue;
请勿在此范围内使用var param。