React中使用ajax获取数据在移动浏览器中不显示问
分类:pc28.am

javascript中$ 是 jQuery 中的经典用法,等同于 $.ready,即在页面加载完成后才执行某个函数,如果函数中要操作 DOM,在页面加载完成后再执行会更安全,所以在使用 jQuery 时这样的写法很常见。

jQuery中$(function() {});问题详解,jqueryfunction

$(function() {});是$(document).ready(function(){ })的简写,最早接触的时候也说$(document).ready(function(){ })这个函数是用来取代页面中的window.onload;但是今天发现 好像不是这样回事!是在做一个页面载入效果时发现的!

$(document).ready() 里的代码是在页面内容都加载完才执行的,如果把代码直接写到script标签里,当页面加载完这个script标签就会执行里边的代码了,此时如果你标签里执行的代码调用了当前还没加载过来的代码或者dom,那么就会报错,当然如果你把script标签放到页面最后面那么就没问题了,此时和ready效果一样。

$(document).ready(function(){})可以简写成$(function(){});

点击段落后,此段落隐藏:

<html>
<head>
<script src="http://www.bestsilkbedding.com/uploads/allimg/191207/0056255C3-0.jpg" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
 $("p").click(function(){
  $(this).hide();
 });
});
</script>
</head>

<body>
 <p>If you click on me, I will disappear.</p>
</body>
</html>

  

如果把$(document).ready(function() {});去掉后,无法隐藏段落:

<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
 $("p").click(function(){
  $(this).hide();
 });
</script>
</head>

<body>
 <p>If you click on me, I will disappear.</p>
</body>
</html>

  

但是把script放到页面最后的话,就可恢复隐藏效果:

<html>
<head>
</head>

<body>
 <p>If you click on me, I will disappear.</p>
</body>

<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript">
 $("p").click(function(){
   $(this).hide();
 });
</script>
</html>

  

  • CSS3和Html5
  • 图表与图形
  • 表单验证
  • 导航菜单
  • table选项卡
  • 视频播放器
  • 日期和时间
  • 返回顶部
  • 图层代码
  • 滚动代码
  • 幻灯片
  • 文字特效
  • 图片放大镜
  • juqery焦点图
  • 瀑布流
  • 广告悬浮代码
  • 在线客服
  • 网页导航菜单
  • 时间倒计时
  • Jquery教程
  • wap手机网站教程
  • javascript教程
  • CSS3教程
  • 网页基础
  • php
  • html
  • 图片表情
  • 手机网站模板
  • CSS3动画
  • html5 Canvas画布

总结:

$(document).ready 里的代码是在页面内容都加载完才执行的,你直接写到script标签里,当页面加载完这个script标签就会执行里边的代码了,如果你标签里执行的代码调用了当前还没加载过来的代码或者dom,那么就会报错,
当然如果你把script标签当到页面最后面那么就没问题了和ready差不多的效果

) {});问题详解,jqueryfunction $(function() {});是$(document).ready(function(){ })的简写,最早接触的时候也说$(document).ready(function(){ })这...

这个问题困扰了我半个月的时间,今天终于解决了。

$ 里的代码是在页面内容都加载完才执行的,如果把代码直接写到script标签里,当页面加载完这个script标签就会执行里边的代码了,此时如果你标签里执行的代码调用了当前还没加载过来的代码或者dom,那么就会报错,当然如果你把script标签放到页面最后面那么就没问题了,此时和ready效果一样。

在做的一个小项目,页面加载后使用ajax读取本地REST数据,保存在状态中,稍后在form的选择下拉框中显示,代码如下:

$.ready可以简写成$;

150     componentDidMount() {
151       var that = this;
152       const url = 'http://localhost/api/grads/';
153       $.ajax({
154         headers:{
155           'Content-Type':'application/json',
156         },
157         url: url,
158         type:"GET",
159         dataType:"json",
160         data:{},
161         success: function(result){
162           that.setState({grades:result,})
163         },
164         error: function(xhr, status,err){
165           console.log(err.Message);
166         },
167       })
168     }

点击段落后,此段落隐藏:

奇怪的是,运行时在电脑端谷歌、火狐浏览器访问,数据都能加载,在手机端使用谷歌浏览器访问,选择下拉框始终为空,这说明手机端浏览器ajax获取数据时出了问题。
今天偶然在stackoverflow上这个帖子里终于找到了解决办法,修改后代码如下:

$.ready.click.hide; If you click on me, I will disappear. 
150     componentDidMount() {
151       var that = this;
152       const url = 'http://localhost/api/grads/';
153       $(function(){$.ajax({  // 此处添加$(function(){
154         headers:{
155           'Content-Type':'application/json',
156         },
157         url: url,
158         type:"GET",
159         dataType:"json",
160         data:{},
161         success: function(result){
162           that.setState({grades:result,})
163         },
164         error: function(xhr, status,err){
165           console.log(err.Message);
166         },
167       })}) // 此处添加})
168     }

如果把$.ready;去掉后,无法隐藏段落:

修改后手机谷歌浏览器显示正常。这个$(function(){}的功能何在?

 ${ $; If you click on me, I will disappear. 

javascript中$(function() {....}) 是 jQuery 中的经典用法,等同于 $(document).ready(function() {....}),即在页面加载完成后才执行某个函数,如果函数中要操作 DOM,在页面加载完成后再执行会更安全,所以在使用 jQuery 时这样的写法很常见。

$(document).ready() 里的代码是在页面内容都加载完才执行的,如果把代码直接写到script标签里,当页面加载完这个script标签就会执行里边的代码了,此时如果你标签里执行的代码调用了当前还没加载过来的代码或者dom,那么就会报错,当然如果你把script标签放到页面最后面那么就没问题了,此时和ready效果一样。

$(document).ready(function(){})可以简写成$(function(){});

但是把script放到页面最后的话,就可恢复隐藏效果:

可参考jquery此处的官方文档。

 If you click on me, I will disappear. ${ $; 

可能的原因是手机端刘览器与电脑端浏览器页面加载中处理脚本时间不同,前者是未等页面加载结束即执行jquery脚本,后者则相反,所以后者不需$(function(){}也可正常显示。

javascript 中的作用和用法有哪些

和对象啥的没关系 代表立即执行一个匿名的方法一般用来与外界隔绝 制造一个似闭包的环境 创建一个作用域链 避免变量冲突

{ var a;..........})()

这篇文章主要介绍了javascript中$;写与不写有哪些区别,希望对大家有所帮助。

本文由pc28.am发布于pc28.am,转载请注明出处:React中使用ajax获取数据在移动浏览器中不显示问

上一篇:fly插件实现加入购物车抛物线动画效果,16款购物 下一篇:没有了
猜你喜欢
热门排行
精彩图文