至尊技术网 - jQuery
https://www.zzwws.cn/tag/jQuery/
-
JQuery长按事件
https://www.zzwws.cn/archives/6341/
2022-05-21T15:44:00+08:00
$(".text").on({
touchstart: function(e) {
var oSpan = e.currentTarget.lastElementChild
// 长按事件触发
timeOutEvent = setTimeout(function() {
timeOutEvent = 0;
console.log('你长按了');
}, 500);
},
touchmove: function() {
clearTimeout(timeOutEvent);
timeOutEvent = 0;
},
touchend: function() {
clearTimeout(timeOutEvent);
if (timeOutEvent != 0) {
console.log('你点击了');
}
return false;
}
})
-
jQuery ajax如何同步请求
https://www.zzwws.cn/archives/5451/
2021-07-30T14:01:00+08:00
由于$.post() 和 $.get() 默认是 异步请求,如果需要同步请求,则可以进行如下使用:在$.post()前把ajax设置为同步:$.ajaxSettings.async = false;
在$.post()后把ajax改回为异步:$.ajaxSettings.async = true;
如:$.ajaxSettings.async = false;
$.post("/finance/getLastTimeCard", data, function(result) {
// 请求处理
},"json");
$.ajaxSettings.async = true;
$.ajax设置同步,加个async: false就可以了$.ajax({
type:"post",
url:"login.php",
data:{name:"name",password:"password"},
datatype: "json",
async: false,
success:function(data){
}
});
ajax请求数据,并怎么将数据赋值给全局变量因为ajax本身是异步执行的,导致内部定义的任何变量外部无法调用,解决方式为在ajax中添加async: false属性,变异步为同步,这样就可以使success方法中定义的全局变量在ajax外调用啦。
-
判断页面中是否引用jQuery或者其他的
https://www.zzwws.cn/archives/5101/
2021-06-05T17:53:01+08:00
必须是放在jQuery后面才能判断!第一种:<script>!window.jQuery && document.write("<script src=\"js/jquery.min.js\"><\/script>");</script>
第二种:<script>if(typeof jQuery == 'undefined'){document.write("<script src=\"js/jquery.min.js\"><\/script>");}</script>
-
jQuery获取上级、同级、下级元素
https://www.zzwws.cn/archives/5046/
2021-05-19T14:27:05+08:00
jQuery.parent(expr) 找父亲节点,可以传入expr进行过滤,比如$("span").parent()或者$("span").parent(".class")jQuery.parents(expr),类似于jQuery.parents(expr),但是是查找所有祖先元素,不限于父元素jQuery.children(expr).返回所有子节点,这个方法只会返回直接的孩子节点,不会返回所有的子孙节点jQuery.contents(),返回下面的所有内容,包括节点和文本。这个方法和children()的区别就在于,包括空白文本,也会被作为一个jQuery对象返回,children()则只会返回节点jQuery.prev(),返回上一个兄弟节点,不是所有的兄弟节点jQuery.prevAll(),返回所有之前的兄弟节点jQuery.next(),返回下一个兄弟节点,不是所有的兄弟节点jQuery.nextAll(),返回所有之后的兄弟节点jQuery.siblings(),返回兄弟姐妹节点,不分前后jQuery.find(expr),跟jQuery.filter(expr)完全不一样。jQuery.filter()是从初始的jQuery对象集合中筛选出一部分,而jQuery.find()的返回结果,不会有初始集合中的内容,比如$("p"),find("span"),是从p元素开始找,等同于$("p span")
-
使用jQuery播放/暂停 HTML5视频
https://www.zzwws.cn/archives/5042/
2021-05-14T11:11:00+08:00
js中的play()是不行的,play并不是jQuery的函数,而是DOM元素的函数播放$('video').trigger('play');
暂停$('video').trigger('pause');
点击视频播放和暂停$('video').click(function() {
if ($(this).hasClass('pause')) {
$("video").trigger("play");
$(this).removeClass('pause');
$(this ).addClass('play');
} else {
$("video").trigger("pause");
$(this ).removeClass('play');
$(this ).addClass('pause');
}
})
-
jQuery实现页面到滚动到指定位置执行某些操作
https://www.zzwws.cn/archives/5041/
2021-05-14T11:00:00+08:00
如果页面滚动到class名为group-pic的元素的位置时开始加载$(function(){
var a,b,c;
a = $(window).height(); //浏览器窗口高度
var group = $(".group-pic");
$(window).scroll(function(){
b = $(this).scrollTop(); //页面滚动的高度
c = group.offset().top; //元素距离文档(document)顶部的高度
if(a+b>c){
}else{
}
});
});
点击按钮页面滚动后,按钮始终在下方var height = $(document).height() - $(window).height();
if(!($(document).scrollTop() >= height)){
var h = $(document).height() - ($(document).height() - $('.btn').offset().top + $(window).height() - $('.btn').height());
$('body,html').animate({
scrollTop: h
},500);
}
一些获宽高度的属性:网页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;网页可见区域宽: document.body.offsetWidth (包括边线的宽);网页可见区域高: document.body.offsetHeight (包括边线的宽);网页正文全文宽: document.body.scrollWidth;网页正文全文高: document.body.scrollHeight;网页被卷去的高: document.body.scrollTop;网页被卷去的左: document.body.scrollLeft;网页正文部分上: window.screenTop;网页正文部分左: window.screenLeft;屏幕分辨率的高: window.screen.height;屏幕分辨率的宽: window.screen.width;屏幕可用工作区高度: window.screen.availHeight;屏幕可用工作区宽度:window.screen.availWidth;obj.offsetTop 指 obj 距离上方或上层控件的位置,整型,单位像素。obj.offsetLeft 指 obj 距离左方或上层控件的位置,整型,单位像素。obj.offsetWidth 指 obj 控件自身的宽度,整型,单位像素。obj.offsetHeight 指 obj 控件自身的高度,整型,单位像素。1.offsetTop : 当前对象到其上级层顶部的距离.不能对其进行赋值.设置对象到页面顶部的距离请用style.top属性.2.offsetLeft : 当前对象到其上级层左边的距离.不能对其进行赋值.设置对象到页面左部的距离请用style.left属性.3.offsetWidth : 当前对象的宽度.与style.width属性的区别在于:如对象的宽度设定值为百分比宽度,则无论页面变大还是变小,style.width都返回此百分比,而offsetWidth则返回在不同页面中对象的宽度值而不是百分比值4.offsetHeight : 与style.height属性的区别在于:如对象的宽度设定值为百分比高度,则无论页面变大还是变小,style.height都返回此百分比,而offsetHeight则返回在不同页面中对象的高度值而不是百分比值
-
JQuery获取append后的动态元素
https://www.zzwws.cn/archives/4983/
2020-12-24T15:17:00+08:00
jquery 1.7之前用$('.btn').live('click', function() {
alert('获取到了');
});
jquery 1.7+之后用on代替live,on()方法在被选元素及子元素上添加一个或多个事件处理程序$('body').on('click', '.btn', function() {
alert('获取到了');
});
-
PHP利用TXT文本存储数据
https://www.zzwws.cn/archives/4967/
2020-12-05T17:11:00+08:00
1.php<?php
header('content-type: application/json;charset=utf-8');
$wj = '1.txt';
if (!empty($_POST)) {
//插入内容,不加FILE_APPEND,默认值为替换内容
$fp = file_put_contents($wj, $_POST['te'] . "\n", FILE_APPEND);
if ($fp !== false) {
echo json_encode(array('code' => '200', 'msg' => '提交成功'));
} else {
echo json_encode(array('code' => '400', 'msg' => '提交失败'));
}
} else {
if (isset($_GET['te']) && $_GET['te'] == 'hq') {
//获取内容
$str = file_get_contents($wj);
$arr = explode("\n", $str); //把换行转换成数组
// print_r($arr);
echo json_encode($arr);
} else {
echo json_encode(array('code' => '400', 'msg' => '获取失败'));
}
}
1.html<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Cache-Control" content="no-cache">
<title>PHP利用txt文本存储数据</title>
</head>
<body>
<input type="text" name="te">
<button class="btn">提交</button>
<div class="box"></div>
<script src="https://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert"></script>
<script>
$('.btn').on('click', function() {
var te = $('[name="te"]').val();
if (te == '') {
swal('提示', '请输入内容', 'error');
} else {
$.post('1.php', {
te: te
}, function(ret) {
if (ret.code == 200) {
swal("提示", "提交成功", "success", {
buttons: "确定" //,dangerMode: true //确定按钮变红色
}).then((value) => {
// swal(`The returned value is: ${value}`);
if (value) {
// swal('确定');
location.reload();
} else {
// swal('取消');
location.reload();
}
});
} else {
swal('提示', '提交失败', 'error');
}
})
}
})
$.get('1.php', {
te: 'hq'
}, function(ret) {
console.log(ret);
if (ret.code == 400) {
swal('提示', ret.msg, 'error');
} else {
var str = '';
for (var i = 0; i < ret.length; i++) {
str += ret[i] + '<br>';
}
$('.box').html(str);
}
})
</script>
</body>
</html>
-
PHP连接数据库,通过接受post请求实现增删改查
https://www.zzwws.cn/archives/4954/
2020-11-18T15:00:00+08:00
1.html文件:<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Cache-Control" content="no-cache">
<title>PHP连接数据库实现增删改查</title>
</head>
<body>
<div>
<input type="text" name="daiHao" placeholder="代号">
<input type="text" name="keMu" placeholder="科目">
<input type="text" name="jieShu" placeholder="节数">
<button class="tianJia">添加</button>
<button class="shanChu">删除</button>
<button class="xiuGai">修改</button>
<button class="chaZhao">查找</button>
</div>
<p>提示:添加可以填3个,删除只填代号,修改可以填科目和节数然后需要改哪个填代号,查询填科目和节数。</p>
<table>
<tbody>
<!-- <tr>
<th>代号</th>
<th>科目</th>
<th>节数</th>
</tr> -->
</tbody>
</table>
<script src="https://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script>
<script>
function teVal(){
daiHao = $('[name="daiHao"]').val();
keMu = $('[name="keMu"]').val();
jieShu = $('[name="jieShu"]').val();
arr = '<tr><th>代号</th><th>科目</th><th>节数</th></tr>';
}
$.post('1.php',{a: 'synr'},function(ret){
teVal();
// console.log(ret);
if(ret[0].code == '200'){
// alert(ret[0].msg);
for(var i = 1;i < ret.length;i++){
arr += '<tr><td>'+ret[i].c_id+'</td><td>'+ret[i].c_name+'</td><td>'+ret[i].t_id+'</td></tr>';
}
$('tbody').html(arr);
}else{
alert(ret[0].msg);
}
})
//添加
$('.tianJia').on('click',function(){
teVal();
if(keMu == '' && jieShu == ''){
alert('请输入你要添加的内容!');
}else if(daiHao == ''){
alert('请输入你要添加的内容!');
}else{
$.post('1.php',{a: 'tianJia',c_id: daiHao,c_name: keMu,t_id: jieShu},function(ret){
// console.log(ret);
if(ret.code == '200'){
alert(ret.msg);
location.reload();
}else{
alert(ret.msg);
}
})
}
})
//删除
$('.shanChu').on('click',function(){
teVal();
if(daiHao != ''){
var res = confirm('是否删除?');
if(res){
$.post('1.php',{a: 'shanChu',c_id: daiHao},function(ret){
if(ret.code == '200'){
alert(ret.msg);
location.reload();
}else{
alert(ret.msg);
}
})
}
}else{
alert('请输入你要删除的代号!');
}
})
//修改
$('.xiuGai').on('click',function(){
teVal();
if(keMu != '' || jieShu != ''){
var res = confirm('是否修改?');
if(res){
$.post('1.php',{a: 'xiuGai',c_id: daiHao,c_name: keMu,t_id: jieShu},function(ret){
// console.log(ret);
if(ret.code == '200'){
alert(ret.msg);
location.reload();
}else{
alert(ret.msg);
}
})
}
}else{
alert('请输入你要修改的内容!');
}
})
//查找
$('.chaZhao').on('click',function(){
teVal();
if(keMu != '' || jieShu != ''){
$.post('1.php',{a: 'chaZhao',c_id: daiHao,c_name: keMu,t_id: jieShu},function(ret){
// console.log(ret)
if(ret[0].code == '200'){
// alert(ret[0].msg);
for(var i = 1;i < ret.length;i++){
arr += '<tr><td>'+ret[i].c_id+'</td><td>'+ret[i].c_name+'</td><td>'+ret[i].t_id+'</td></tr>';
}
$('tbody').html(arr);
}else{
alert(ret[0].msg);
}
})
}
})
</script>
</body>
</html>
1.php文件:<?php
$conn = mysqli_connect('localhost','cs','123456','cs','3306');//主机名或 IP 地址,MySQL用户名,MySQL密码,规定默认使用的数据库,MySQL服务器的端口号,规定 socket 或要使用的已命名 pipe
if (!$conn) {
die("连接错误: " . mysqli_connect_error());
}
// var_dump($conn);
mysqli_query($conn,"set names utf8");//设置数据库编码为utf8
header('content-type: application/json;charset=utf-8');//输出为json格式,并设置编码为utf-8
//全局
$c_id = isset($_POST['c_id']) ? trim($_POST['c_id']) : '';
$c_name = isset($_POST['c_name']) ? trim($_POST['c_name']) : '';
$t_id = isset($_POST['t_id']) ? trim($_POST['t_id']) : '';
//添加
function tianJia(){
$conn = $GLOBALS['conn'];//引用全局作用域中可用的全部变量
$c_id = $GLOBALS['c_id'];
$c_name = $GLOBALS['c_name'];
$t_id = $GLOBALS['t_id'];
$sql = "insert into course (c_id,c_name,t_id) values ('$c_id','$c_name','$t_id')";//添加
$result = mysqli_query($conn,$sql);
if($result){
return json_encode(array('code' => '200','msg' => '添加成功'));
}else{
return json_encode(array('code' => '400','msg' => '添加失败'));
}
}
//删除
function shanChu(){
$conn = $GLOBALS['conn'];
$c_id = $GLOBALS['c_id'];
$sql = "delete from course where c_id='$c_id'";//删除
$result = mysqli_query($conn,$sql);
if($result){
return json_encode(array('code' => '200','msg' => '删除成功'));
}else{
return json_encode(array('code' => '400','msg' => '删除失败'));
}
}
//修改
function xiuGai(){
$conn = $GLOBALS['conn'];
$c_id = $GLOBALS['c_id'];
$c_name = $GLOBALS['c_name'];
$t_id = $GLOBALS['t_id'];
if($c_name != ''){
$s = "c_name='$c_name'";
}else if($t_id != ''){
$s = "t_id='$t_id'";
}else if($c_name != '' && $t_id != ''){
$s = "c_name='$c_name',t_id='$t_id'";
}
$sql = "update course set $s where c_id='$c_id'";//修改
$result = mysqli_query($conn,$sql);
if($result){
return json_encode(array('code' => '200','msg' => '修改成功'));
}else{
return json_encode(array('code' => '400','msg' => '修改失败'));
}
}
//查找
function chaZhao(){
$conn = $GLOBALS['conn'];
$c_id = $GLOBALS['c_id'];
$c_name = $GLOBALS['c_name'];
$t_id = $GLOBALS['t_id'];
if($c_name != ''){
$s = "c_name='$c_name'";
}else if($t_id != ''){
$s = "t_id='$t_id'";
}else if($c_name != '' && $t_id != ''){
$s = "c_name='$c_name' and t_id='$t_id'";
}
$sql = "select * from course where $s";//查找
$result = mysqli_query($conn,$sql);
$arr = array();//建一个空数组
$arr[] = array('code' => '200','msg' => '查找成功');//赋值到空数组里
while ($row = mysqli_fetch_assoc($result)) {//通过while循环获取
$arr[] = $row;
}
if($result){
return json_encode($arr);
}else{
return json_encode(array('code' => '400','msg' => '查找失败'));
}
}
//所有内容
function synr(){
$conn = $GLOBALS['conn'];
$sql = 'select * from course';
$result = mysqli_query($conn,$sql);
$arr = array();
$arr[] = array('code' => '200','msg' => '获取成功');
while ($row = mysqli_fetch_assoc($result)) {//通过while循环获取
$arr[] = $row;
}
// print_r($arr);
if($result){
return json_encode($arr);
}else{
return json_encode(array('code' => '400','msg' => '获取失败'));
}
}
//转换成数组
// $result = mysqli_query($conn,$sql);//对数据库执行一次查询
// $row = mysqli_fetch_array($result,MYSQLI_ASSOC);//函数从结果集中取得一行作为关联数组,或数字数组。 MYSQLI_ASSOC,MYSQLI_NUM,MYSQLI_BOTH(默认)
// print_r($row);
//mysqli_fetch_assoc($result);//关联数组
//mysqli_fetch_row($result);//数字数组
//错误提示
function bc(){
return json_encode(array('code' => '400', 'msg' => '操作失败'));
}
$a = isset($_POST['a']) ? trim($_POST['a']) : '';
switch ($a){
case "tianJia": // 添加
echo tianJia();
break;
case "shanChu": // 删除
echo shanChu();
break;
case "xiuGai": // 修改
echo xiuGai();
break;
case "chaZhao": // 查找
echo chaZhao();
break;
case "synr":
echo synr();
break;
default:
echo bc();
mysqli_close($conn);//关闭先前打开的数据库连接
}
?>
数据库表下载地址:https://zhizun.lanzoux.com/iuicqiiigxi
-
JQuery添加兄弟节点、相邻元素
https://www.zzwws.cn/archives/4744/
2020-10-09T15:15:00+08:00
1、在每个匹配的元素之后插入内容。$("p").after("<b>Hello</b>");
2、在每个匹配的元素之前插入内容。$("p").before("<b>Hello</b>");
3、把所有匹配的元素插入到另一个、指定的元素元素集合的后面$("p").insertAfter("#foo");
4、把所有匹配的元素插入到另一个、指定的元素元素集合的前面。$("p").insertBefore("#foo");