jQuery微博案例

  • jQuery.trim(str) 去掉字符串起始和结尾的空格
  • 焦点
    • focus() 设置焦点
    • blur() 失去焦点
  • 微博案例
    • 静态页面
    • 监听发布按钮点击
    • 添加删除事件(存在问题)
      • 存在问题
      • 解决方法一:创建节点时添加异步事件
      • 解决方法二:事件委托
        • 原理
        • 场景

jQuery笔记目录

jQuery.trim(str) 去掉字符串起始和结尾的空格

$.trim("  hello, how are you?  ");

运行结果:

"hello, how are you?"

焦点

焦点即光标,是在页面上屏幕中闪动的的小竖线,鼠标点击可获得光标。

focus() 设置焦点

$content.focus() // 获取焦点

blur() 失去焦点

$content.blur(); // 使文本框失去焦点(无法输入,想要输入需要鼠标再次点击)

微博案例

静态页面

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>* {padding: 0;margin: 0;list-style: none;}body {background-image: url("images/body_bg.jpg");}.box {width: 700px;margin: 100px auto;}.input {width: 700px;height: 200px;border: 1px solid #cccccc;background-color: white;border-radius: 6px;}.input .content {width: 690px;height: 150px;margin: 5px;box-sizing: border-box;border: 1px solid gray;resize: none;outline: none;padding: 10px;}.input .submit {width: 100px;height: 30px;float: right;background: orangered;color: white;margin-bottom: 5px;margin-right: 5px;border: none;outline: none;cursor: pointer;}.dataList {width: 600px;margin: 50px auto;}.dataList > ul > li {width: 100%;height: 40px;line-height: 40px;color: slategray;background: lightblue;margin-bottom: 5px;border-radius: 40px;text-indent: 10px;}</style>
</head>
<body>
<div class="box"><div class="input"><textarea class="content"></textarea><button class="submit">发布</button></div><div class="dataList"><ul><li>今天的天气很好呀!</li><li>今天的天气很好呀!</li><li>今天的天气很好呀!</li></ul></div>
</div>
</body>
</html>

运行效果:

监听发布按钮点击

var $content = $('.content');
//1.监听按钮点击
$('.submit').click(function () {//1.1 获取输入框的内容var content = $content.val();// alert(content);//1.2 容错if ($.trim(content).length <= 0) {alert('请输入内容');//1.3 清空输入框的内容,让输入框获取焦点$content.val('') // 清空$content.focus() // 输入框获得焦点return;}//1.3 取出内容,创建一个新的节点var $newLi = $('<li>' + content + '</li>')var $ul = $('.dataList ul'); // ul$newLi.prependTo($ul); // 将新标签插入到 ul 里的最前面//1.4 追加动画的效果$newLi.hide();$newLi.slideDown(500);$content.val(''); // 清空$content.focus(); // 输入框获得焦点});

实现效果:文本框内不输或者只输入空格,跳出提示“请输入内容”。

文本框内正常输入,则内容显示在下方。

添加删除事件(存在问题)

//2.监听li的点击,并且删除
$('.dataList>ul>li').click(function () {$(this).animate({width:'0'}, 1000,function () {$(this).remove();});
});

运行效果:点击下方的内容则向左滑动删除。

存在问题

只能删除默认存在的节点,不能删除后来添加的节点。

解决方法一:创建节点时添加异步事件

创建节点的同时,给它添加异步事件。

var $content = $('.content');
//1.监听按钮点击
$('.submit').click(function () {//1.1 获取输入框的内容var content = $content.val();// alert(content);//1.2 容错if ($.trim(content).length <= 0) {alert('请输入内容');//1.3 清空输入框的内容,让输入框获取焦点$content.val('') // 清空$content.focus() // 输入框获得焦点return;}//1.3 取出内容,创建一个新的节点var $newLi = $('<li>' + content + '</li>')/********************此处为新增代码*******************/$newLi.click(function () { // 创建节点的同时,给它添加异步事件$(this).animate({width:'0'}, 1000,function () {$(this).remove();});})/*****************************************************/var $ul = $('.dataList ul');$newLi.prependTo($ul);//1.4 追加动画的效果$newLi.hide();$newLi.slideDown(500);$content.val(''); // 清空$content.focus(); // 输入框获得焦点
});//2.监听li的点击,并且删除
$('.dataList>ul>li').click(function () {$(this).animate({width:'0'}, 1000,function () {$(this).remove();});
});

解决方法二:事件委托

一般事件委托产生于:点击了子控件,将事件统一传递给父控件处理。

原理

当子控件点击事件触发后,借助事件冒泡的原理,,会传递给父控件。此时,父控件只需要判断是否是指定的子控件即可。

场景

新创建的DOM对象,被添加到网页中后,需要重新手动新增事件。

//2.监听li的点击,并且删除
$('.dataList>ul').on('click', 'li', function () { //利用事件委托,所以监听父控件,判断是否是指定的子控件$(this).animate({width:'0'}, 1000, function () {$(this).remove()});
});

运行效果:点击下方内容,会向左滑动消失。

【jQuery笔记Part4】02-jQuery微博案例相关推荐

  1. 【jQuery笔记Part4】04-jQuery案例-轮播图

    jQuery案例-大屏焦点图-节点操作 案例简介 静态页面 添加事件 jQuery笔记目录 案例简介 轮播图: 点击浏览器左侧,则,展示左边一个图片, 点击浏览器右侧,则,展示右边一个图片, 越界循环 ...

  2. 【jQuery笔记Part4】03-事件详解

    事件详解 display:inline-block 事件冒泡 阻止事件冒泡 常用事件 事件常用属性 事件监听方法 示例页面: on() 绑定事件 绑定单个事件 绑定多个事件->同一回调函数 绑定 ...

  3. 【jQuery笔记Part4】01-jQuery-节点操作-添加节点-删除节点-复制节点

    节点操作 添加节点 静态页面 内部添加(父子关系) append(): 添加节点->追加到最后 (父子关系) appendTo(tag): 把创建的节点添加到指定节点之后(父子关系) prepe ...

  4. 【jQuery笔记】狂拍灰太狼案例笔记

    狂拍灰太狼 使用 jQuery 语法实现的新浪微博页面 我要实现的功能: 点击开始游戏按钮,开始游戏 游戏有时间进度条 游戏结束以后可以点击重新开始按钮,重新开始游戏 有游戏规则 点击灰太狼加 10 ...

  5. jQuery笔记——工具函数——jQuery标志

    jQuery定义了很多工具函数,这些函数的命名空间为$,但不操作包装集,用户可以把它看作是顶层函数,不同之处是他们定义在$实例上,而不是定义在window实例上,类似于静态类型函数. 通常来说,工具函 ...

  6. 【14笔记】HBase实战--微博案例

    1.需求分析 1.微博内容的浏览,数据库表设计 2.用户社交体现:关注用户,取关用户 3.拉取关注的人的微博内容 2.代码设计 1)创建命名空间以及表名的定义 2)创建微博内容表 3)创建用户关系表 ...

  7. jQuery笔记综合

    jQuery笔记 一. jQuery入门 目标: 能够说出什么是jQuery 能够说出jquery的优点 能够简单使用jquery 能够说出dom对象和jquery对象的区别 1.jQuery概述 仓 ...

  8. 【jQuery笔记Part2】05-jQuery自定义动画

    jQuery自定义动画 简介 animate() 使用 操作多个属性 使用相对值 使用预定义的值 通过连缀或者顺序来实现列队动画 顺序写法 连缀写法 停止动画 延时动画 jQuery笔记目录 简介 j ...

  9. 【jQuery笔记Part1】06-jQuery对象与js对象转换

    jQuery对象与js对象转换 概念 为什么要转换 转化方法 JS对象 -> jQuery对象 jQuery对象 -> JS对象 原理图 jQuery笔记目录 概念 jQuery对象 是通 ...

最新文章

  1. 第六章 非编码RNA鉴定
  2. 在CentOS6.x下安装Compiz——桌面立方体,特效种种
  3. BFPTR算法详解+实现+复杂度证明
  4. Acess 数据库 查询数据表结构等问题小记
  5. MRI图像右心室分割
  6. VS2013搭建wxWidgets开发环境
  7. HDU2014 青年歌手大奖赛_评委会打分【入门】
  8. WWW'22 | 信息检索方向值得一读的3篇论文详解
  9. 报错:非介入式客户端验证规则中的验证类型名称必须唯一。下列验证类型出现重复...
  10. WIN10 企业版 LTSC 激活
  11. vue3.Vue实例
  12. 【读后感1】读《我是一只it小小鸟》有感
  13. Qt5.14.2下载与安装(保姆级图文教程)
  14. linux swp文件重启,Linux下.swp文件的恢复方法
  15. 全国大学生数学建模竞赛(赛题选择)
  16. Unity2020版本使用Kinect的修复(附粒子人像互动demo)
  17. 啃完这本阿里手册,应届七面进阿里
  18. bilibili缓存文件在哪里_简单使用Pyinstaller将Python文件打包为可执行性exe
  19. 环境光照IBL(Image-Based Lighting)
  20. 电脑用USB连接欧姆龙安全PLC失败解决方案

热门文章

  1. 华为达芬奇架构到底好在哪里?
  2. MATLAB产生线性等分量函数 linspace
  3. sort()与cmp()
  4. sql server调试_使用SQL Server扩展事件来调试应用程序
  5. 列顺序对SQL Server复合索引的影响
  6. collector_使用Data Collector进行SQL Server性能监视–第3部分–阅读报告
  7. URL中包含url参数,(文件路径作为参数)
  8. js将手机号中间四位变成*号
  9. java与python数据结构对比
  10. mysql-数据备份操作