帖子
帖子
用户
博客
课程
显示全部楼层
11
帖子
0
勋章
228
Y币

[开发工具] 请教一下APICloud支不支持JQUERY

[复制链接]
发表于 2015-8-4 14:27:46
本帖最后由 霍天 于 2015-8-4 15:01 编辑

如题,我使用jquery写法,然后使用onclick事件,总是报错!然后改成$("").click 还是报错!
到底支不支持JQUERY或者他的写法是什么样子的!有没有文档说明
40
帖子
0
勋章
6375
Y币
是支持的   报什么错误?
11
帖子
0
勋章
228
Y币
笨阿哼 发表于 2015-8-4 15:44
是支持的   报什么错误?
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  5.     <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
  6.     <title>frame1</title>
  7.     <style>
  8.     body,ul,li{margin:0;padding:0;list-style:none;}
  9.     #aaa{width:100%;height:100%;}
  10.     .a1{
  11.             width:100%;
  12.             height:auto;
  13.             min-height:260px;
  14.             background-color:#646464;
  15.     }

  16.     .a2{
  17.             position:absolute;
  18.             bottom:0;
  19.             width:100%;

  20.     }
  21.     .b1{
  22.             width:32%;
  23.             height:100px;
  24.             background-color:#7d7d7d;
  25.             float:left;
  26.             text-align:center;
  27.             line-height:100px;
  28.             margin-left:1%;
  29.             margin-bottom:6px;
  30.             cursor:pointer;
  31.     }
  32.     </style>
  33. </head>
  34. <body>
  35. <div id="aaa">
  36. <div class="a1">
  37.         工
  38. </div>
  39. <div class="a2">
  40.         <div class="b1">第一行</div>
  41.         <div class="b1" onclick="two()">第二行</div>
  42.         <div class="b1">第一行</div>
  43.         <div class="b1">第一行</div>
  44.         <div class="b1">第一行</div>
  45.         <div class="b1">第一行</div>
  46. </div>
  47. </div>
  48. <script type="text/javascript" src="js/api.js"></script>
  49. <script type="text/javascript">
  50.         apiready = function(){
  51.                 var model=api.require('model');
  52.             var query=api.require('query');
  53.             model.config({
  54.                     appId:'A6983699353944',
  55.                 appKey:'0B8B8451-1734-362D-B74A-F9D68E457B43',
  56.                 host:'https://d.apicloud.com',
  57.         });
  58.                 query.createQuery(function(ret,err){
  59.                 if(ret && ret.qid){
  60.                 var queryId=ret.qid;
  61.                 model.findAll({
  62.                     class:'kaoqin',
  63.                     qid:'queryId'
  64.             },function(ret,err){
  65.                     //coding...
  66.                      function two(){
  67.                      alert("00")
  68.               
  69.                                 }
  70.             });
  71.                 }
  72.         
  73.         
  74.         });
  75.         };
  76.       
  77.        
  78. </script>
  79. </body>
  80. </html>
复制代码
运行总是提示错误!位置是html代码里的onclick()
40
帖子
0
勋章
6375
Y币
霍天 发表于 2015-8-4 16:14
运行总是提示错误!位置是html代码里的onclick()

这段代码我没发现你哪有引用jquery?
8
帖子
0
勋章
1万+
Y币
本帖最后由 yyyfx 于 2015-8-5 09:45 编辑
霍天 发表于 2015-8-4 16:14
运行总是提示错误!位置是html代码里的onclick()

onclick="two()" 点击时调用的是 two() 函数。
从代码中看,这个 two 函数位于 model.findAll 回调函数的内部。
JavaScript 中函数的作用域是局部的,也就是说,
此处的 two 函数只能在 model.findAll 的回调函数中被调用,外部是无法调用的。

试下将 function two(){} 放在 apiready 函数的外面。
11
帖子
0
勋章
228
Y币
yyyfx 发表于 2015-8-5 09:44
onclick="two()" 点击时调用的是 two() 函数。
从代码中看,这个 two 函数位于 model.findAll 回调函数的 ...

放在什么位置都会出错!如果放在apiready 里面!就不行!
如果放在外面,可以使用,但是不能使用数据信息!
比如:放在里面时----function(){ alert("")  }都会提示错误,行43  行71
放在外面时----function(){  alert("这里只能这样写,不能写数据信息ret[0].name")   }
5
帖子
0
勋章
1万+
Y币
在apiready获取完数据,将其保存于内存中的一个变量中;把two函数放于外面,请用时要用到的数据请从内存的变量中获取
11
帖子
0
勋章
228
Y币

点击提交

点击提交

点击提交按钮就提示这个
  1. <div id="aaa">
  2. <div class="a1" id="a1">
  3.         工
  4.         <input id="name">
  5.         <button class="sub" onclick="sub()">提交</button>
  6. </div>
  7. <div class="a2">
  8.         <div class="b1">第一行</div>
  9.         <div class="b1">第二行</div>
  10.         <div class="b1">第一行</div>
  11.         <div class="b1">第一行</div>
  12.         <div class="b1">第一行</div>
  13.         <div class="b1">第一行</div>
  14. </div>
  15. </div>
  16. <script type="text/javascript" src="js/api.js"></script>
  17. <script type="text/javascript">
  18.         apiready = function(){
  19.                 var model=api.require('model');
  20.             var query=api.require('query');
  21.             model.config({
  22.                     appId:'A6983699353944',
  23.                 appKey:'0B8B8451-1734-362D-B74A-F9D68E457B43',
  24.                 host:'https://d.apicloud.com',
  25.         });

  26.         
  27.                   /*插入数据*/
  28.         function sub(){
  29.                 model.insert({
  30.             class: 'kaoqin',
  31.             value:{
  32.         name: 'kenny'
  33.             }
  34.                 }, function(ret, err) {
  35.                     if (ret) {
  36.                         alert("成功了")
  37.             } else {
  38.                         alert("插入失败了")
  39.                     }
  40.                 });
  41.         }
  42.         /*插入数据结束*/   
  43.         
  44.       
  45.         };
  46. </script>
复制代码

8
帖子
0
勋章
1万+
Y币
霍天 发表于 2015-8-5 16:39
点击提交按钮就提示这个

请将 sub() 函数放在 apiready 函数的外面。放在 apiready 中的函数,外面是调用不了的。
页面可以点击的时候,apiready 其实已经执行了,也就是说,APICloud 的 api 已经准备好了。
所以 sub() 函数不需要放在 apiready 中。请参考下面的代码:
  1.     var model, query;
  2.     apiready = function() {
  3.         model = api.require('model');
  4.         query = api.require('query');
  5.         model.config({
  6.             appId: 'A6983699353944',
  7.             appKey: '0B8B8451-1734-362D-B74A-F9D68E457B43',
  8.             host: 'https://d.apicloud.com',
  9.         });
  10.     };

  11.     /*插入数据*/
  12.     function sub() {
  13.         model.insert({
  14.             class: 'kaoqin',
  15.             value: {
  16.                 name: 'kenny'
  17.             }
  18.         }, function(ret, err) {
  19.             if (ret) {
  20.                 alert("成功了")
  21.             } else {
  22.                 alert("插入失败了")
  23.             }
  24.         });
  25.     }
  26.     /*插入数据结束*/
复制代码

11
帖子
0
勋章
228
Y币
yyyfx 发表于 2015-8-5 18:43
请将 sub() 函数放在 apiready 函数的外面。放在 apiready 中的函数,外面是调用不了的。
页面可以点击的 ...

太感谢版主了!帮我迈过了一个坎!很多时候就是有这么一个坎迈不过去!所有的想法都不能实现!太感谢了!
您需要登录后才可以回帖 登录

本版积分规则