【问题标题】:Passing dynamic data JQueryMobile传递动态数据 JQueryMobile
【发布时间】:2013-06-10 03:57:27
【问题描述】:

好的,我真的需要一些帮助来解决我正在测试的这个问题。我正在尝试使用 JqueryMobile 创建一个测试 phonegap 应用程序,但我有以下问题。

  • 我正在创建一个多页 jquery 模板
  • 在第一页上,它显示了一个包含来自 JSON 请求的动态链接的项目列表。
  • 到目前为止没有问题。当我点击一个链接时,问题就开始了。现在我设法使用脚本 jquery.mobile.router.js 传递 URL 变量。所以网址类似于:test3.html#blog?blog_id=10
  • 我找到了一个将blog_id 号码发送到 JSON 请求的脚本,这有点工作。我需要硬刷新才能显示内容。

我的第一个代码(有效):

<script type="text/javascript">
$.ajax({
url: 'test.cfc?method=books&ReturnFormat=json',
dataType: 'json',
success: function(response) {
    var data = response.DATA;
    var str = '<ul>';

    for (var I = 0; I < data.length; I++) {
        str += '<li><a href="#blog?blog_id=' +  data[I][0] + '"data-transition="slide">' +     I + data[I][1] + '</a></li>';
    }

    str += '</ul>';

    $('#output').html(str);
},
error: function(ErrorMsg) {
   console.log('Error');
}
});
</script>

然后是第二个代码(不起作用);第一部分尝试过滤在 URL 中传递的 blog_id 数字。警报是检查是否粘贴了正确的值。第二部分应该加载博客的文本,但没有真正起作用。

<script type="text/javascript">
function getUrlVars()
{
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
    hash = hashes[i].split('=');
    vars.push(hash[0]);
    vars[hash[0]] = hash[1];
}
return vars;

}

var blog_id = getUrlVars()["blog_id"];
alert(blog_id)

$.ajax({
url: 'test.cfc?method=blog&ReturnFormat=json&blog_id='+blog_id,
type: 'GET',
dataType: 'json',
success: function(response) {
    var data = response.DATA;

    for (var I = 0; I < data.length; I++) {
        str = '<h1>' + data[I][0] + '</h1>' + data[I][1] ;
    }


    $('#outputblog').html(str);

},
error: function(ErrorMsg) {
   console.log('Error');
}
});

</script>

能否请人帮忙批准我的代码或提供一些建议? 谢谢!!

【问题讨论】:

  • 你说的不工作是什么意思?请告诉我们更多。警报是抛出blog_id 还是undefined
  • stackoverflow.com/questions/14468659/… 然后转到页面转换之间的数据/参数操作部分。
  • 我想了想,想知道这是否可行(上面的代码)?发生的事情是我在加载时加载了所有 ajax 请求,因为它是一个多页模板。因此,当我启动应用程序时,我会收到“未定义”警报,这是正确的,因为尚未传递任何 blog_id。现在,当我单击一个链接(其中包含 blog_id)时,不会加载结果,因为它加载到同一个 DOM 对象中。只有在硬重新加载后它才能工作(我看到警报给了我正确的数字并且加载了博客 txt)。那么有没有解决方案来解决这个问题,还是我需要将我的 blog_text_page 放到另一个文档中?

标签: jquery jquery-mobile cordova parameter-passing


【解决方案1】:

您是否已重定向到 blog_id 页面部分?在ajax成功后尝试调用它。

location.hash = "blog_id";

【讨论】:

    猜你喜欢
    • 2021-06-28
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-27
    • 2018-10-01
    相关资源
    最近更新 更多