jQuery 学习笔记
jQuery 中的 dom 追加操作方法 (主动 / 被动、前面 / 后面、里面 / 外面):#
- append: 主动 / 后面 / 里面
- appendTo: 被动 / 后面 / 里面
- prepend: 主动 / 前面 / 里面
- prependTo: 被动 / 前面 / 里面
- before: 主动 / 前面 / 外面
- after: 主动 / 后面 / 外面
- insertBefore: 被动 / 前面 / 外面
- insertAfter: 被动 / 后面 / 外面
在 jQuery 中的循环操作:#
$.each(obj, function(index, el) {
// 循环体
});
obj:需要的循环对象
index:表示当前循环到元素的索引
el:元素,表示当前循环到的元素
异步文件上传流程说明:#
- 产生异步的请求
- 请求得有一个相应的方法(需要返回值,返回内容:图片的路径;在此不需要进行数据表的交互)
- 当异步请求获取到相应之后需要存储图片的地址(但是又没必要给用户看地址,可以使用隐藏域的方式进行存储)
- 当用户提交表单的时候,顺带提交隐藏域的地址
laravel 实现上传处理方法#
在 laravel 项目中除了在上传的时候可以使用 move 和 store 方法【都是 request 实例封装的】之外,还可以使用高级的上传文件保存方法 (由 storage 门面提供的)
Storage 门面在使用的时候需要的注意事项:
- 在 storage 门面中,有一个 “磁盘” 的概念,“磁盘” 一共有三种:本地磁盘,公共磁盘,第三方磁盘;“磁盘” 实质上就是一个目录
- 本地磁盘 (local 磁盘),这些文件存放在 local 磁盘中的文件是不能被浏览器访问到的,存储在其中的文件一般都是项目的 php 代码自身使用!(磁盘位置位于 / Storage/app)
- 公共磁盘 (public 磁盘),存储在该磁盘的文件一般是允许浏览器进行访问的。【磁盘位置位于:/Storage/app/public】
- 第三方磁盘:驱动形式的一种,允许开发者将文件上传到第三方的服务器上。
- 磁盘存在一个配置文件,位置 /config/filesystems.php
默认情况下,浏览器是无法访问到 public 磁盘目录的,但是其又想让浏览器访问,所以需要做一个 “软链接的 “的操作”
php artisan storage:link
相当于快捷方式
当软链接创建好之后,Public 磁盘中的内容会被同步到 /public/storage/ 下
Storage 门面的通用文件保存方法:
Storage::disk(磁盘名)->put(文件名,文件内容);
异步请求回调处理#
在 html 代码中添加隐藏域
<input type="hidden" name="avatar" value="">
通过回调将返回的 path 写入隐藏域
使用七牛云存储存储文件#
七牛:一家提供各种网络服务的运营商,其性质类似于阿里云
做到代码与资源分离
原因:
- 在后期维护网站的也比较方便;
- 资源分离之后可以减轻代码服务器的压力;
- 如何将资源分离和 CDN (content delivery network 内容分发网络) 配合起来用,对于 bat 之类的大公司来说 1 年能够生下来的成本至少 7 位数以上;
注册七牛账号后创建后期需要的对象存储实例 (不用充钱,每月免费 10G 空间, 20G 的流量)
-
选择对象存储
-
新建空间:自己在哪个区域选择哪个存储区域
-
下载七牛的代码依赖库
-
composer require zgldh/qiniu-laravel-storage
-
配置 filesystems.php:
-
'qiiniu' => [ 'driver' => 'qiniu', 'domains'=> [ 'default' => 'xxxx.com1.z0.glb.clouddn.com', // 你的七牛域名 'https' => '', 'custom' => '' ], 'access_key' => '', // AK 'secret_key' => '', // SK 'bucket' => '', // 磁盘名字 'notify_url' => '', // 持久化处理 'access' => 'public', // 空间访问控制 ],
-
添加 providers 数组:
-
zgldh\QiniuStorage\QiniuFilesystemServiceProvider::class,
-
播放视频可以选用 H5 的播放器#
<video src="movie.ogg" controls="controls">
您的浏览器不支持 video 标签。
</video>
new : HTML5 中的新属性。
属性 | 值 | 描述 |
---|---|---|
autoplay | autoplay | 如果出现该属性,则视频在就绪后马上播放。 |
controls | controls | 如果出现该属性,则向用户显示控件,比如播放按钮。 |
height | pixels | 设置视频播放器的高度。 |
loop | loop | 如果出现该属性,则当媒介文件完成播放后再次开始播放。 |
muted | muted | 规定视频的音频输出应该被静音。 |
poster | URL | 规定视频下载时显示的图像,或者在用户点击播放按钮前显示的图像。 |
preload | preload | 如果出现该属性,则视频在页面加载时进行加载,并预备播放。如果使用 "autoplay",则忽略该属性。 |
src | url | 要播放的视频的 URL。 |
width | pixels | 设置视频播放器的宽度。 |
原生 JS 给 select 添加 option 选项#
var cateList = eval(ajaxResult);
cateField.innerHTML = '';
for(var idx in cateList) {
var option = document.createElement("option");
option.value = cateList[idx].id;
option.innerHTML = cateList[idx].name;
cateField.appendChild(option);
}
给 table 的 tr 加上点击事件#
$('#content tbody').on('click','tr', function () {
// 这是获取第一个td文本
var firstTd = $(this).find("td:first").text();
// 这是获取第二个td的文本
var in_ku_id = $(this).find("td:nth-child(2)").text();
});
ajax 渲染 table#
$('#content tbody').on('click','tr', function () {
// 入库编号
var in_ku_id = $(this).find("td:nth-child(2)").text();
// 将入库编号传给表单
$('#ku_list_id').val(in_ku_id);
$('#count tbody').html("");
$.ajax({
url: "{:url('/admin/stock/stock/kulist')}",
data: {ku_id:in_ku_id},
type: 'post',
dataType: 'json',
success: function (data) {
for (var i = 0; i < data.length; i++) {
tr = '<td>' + data[i].id + '</td>' + '<td>' + data[i].barcode +
'</td>' + '<td>' + data[i].goods_id + '</td>' + '<td>' + data[i]
.supply_name + '</td>' + '<td>' + data[i].standard + '</td>' + '<td>' +
data[i].unit + '</td>' + '<td>' + data[i].num + '</td>' + '<td>' + data[i].price + '</td>' +
'<td>' + data[i].sell_price + '</td>' + '<td>' + data[i].created_at + '</td>';
$("#count").append('<tr class="link">' + tr + '</tr>')
}
}
});
return false;
});
本作品采用《CC 协议》,转载必须注明作者和本文链接