hexo next中遇到的bug,引发出的关于jquery中click()函数和on("click",function())的区别
个人博客:https://mmmmmm.me
源码:https://github.com/dataiyangu/dataiyangu.github.io
背景:
本人在维护博客的时候加入了aplayer(一个音乐插件),效果如图

可是效果不太美观,为了优化一下想做成这个样子:鼠标移入出现背景图,点击全部展开,希望在点击按钮上加click函数,达到修改div的left值来实现

这个时候出现问题了,在电脑端实现没有问题的,可是在移动端会出现点击点击事件没有绑定成功
代码:
define(function () {
aplaer();
function aplaer() {
//falsedakai false表示没点击打开
//falsechuxian false表示没有把鼠标移入
var flag_music = false
flagchuxian=false;
$(".aplayer-body").mouseenter(function () {
if (flagchuxian==false&&flag_music==false){
$(".aplayer-body").css({"left":"0px"})
flagchuxian=true;
flag_music==false;
}
})
$(".aplayer-body").mouseleave(function () {
if (flagchuxian==true&&flag_music==false) {
$(".aplayer-body").css({"left": "-66px"})
flagchuxian=false;
flag_music=false;
}
})
$(".aplayer-icon:last").on("click",function () {
if (flag_music==false) {
$(".aplayer-body").css({"left": "0px"})
flag_music=true;
}else {
$(".aplayer-body").css({"left": "-66px"})
flag_music=false;
}
})
}
})
分析
通过打断点调试,查看源码等均未发现结果,苦恼了好久,好吧这一行你白看了。
解决问题
通过google查看相关的问题,博文连接:https://www.cnblogs.com/momozjm/p/6098377.html
大概意思就是将click事件中的.click写成on(“click”,function)的形式,试了试,成功了,趁热打铁,追着问题不放,看下面
2018.12.20更新
今天又发现还是不行,主要是手机不断的刷新,每次都重新的绑定事件,通过阅读博文:https://www.jianshu.com/p/2e1edb42f429 ,
得知,除了动态的添加需要on来绑定事件外,还涉及到如果绑定了时间之后删除了绑定的元素,然后再添加上,再添加的时候还是没有绑定上的。通过body.delegate来帮顶,另外必须在document加载完了之后再绑定这个函数
最后的代码是:
define(function () {
function aplayer() {
var flag_music=false;
$(document.body).delegate('.aplayer-icon:last','click',function(){
if (flag_music==false) {
$(".aplayer-body").css({"left": "0px"})
flag_music=true;
}else {
$(".aplayer-body").css({"left": "-66px"})
flag_music=false;
} });
}
$(function(){
aplayer()
})
})
引申的知识
参考博文:https://blog.csdn.net/hesterrocks/article/details/64442442 后
总结:click只能绑定静态的元素,on(“click”,funciotn)能够绑定动态的元素。
写给读者的话
本人才疏学浅,如果文章中有错误的地方,(包括错别字),还希望指出,大家共同进步~
hexo next中遇到的bug,引发出的关于jquery中click()函数和on("click",function())的区别的更多相关文章
- 有 va_arg宏 中数组下标-1 引发的思考 - C 语言中内存模型
va_arg宏,是头文件 stdarg.h 中定义的,获取可变参数的当前参数. #define va_arg(list, mode) ((mode*)(list+=sizeof(mode)))[-1] ...
- 去掉网页中alert和confirm弹出框自带的网址
去掉网页中alert和confirm弹出框自带的网址 Alert: <script> window.alert = function(name){ var iframe = documen ...
- jQuery中的事件与动画 (你的明天Via Via)
众所周知,页面在加载时,会触发load事件:当用户单击某个按钮时,会触发该按钮的click事件. 这些事件就像日常生活中,人们按下开关,灯就亮了(或者灭了),往游戏机里投入游戏币就可以启动游戏一样, ...
- jQuery学习笔记(二)jQuery中DOM操作
目录 DOM操作分类 jQuery中的各种DOM操作 查找节点 创建节点 删除节点 复制节点 替换节点 包裹节点 属性操作 样式操作 对HTML.文本和值的操作 遍历节点 CSS-DOM操作 小结 本 ...
- Jquery中的事件和动画
在学习Jquery中的过程中我们绝大部分都用到了事件的操作,也可以说事件是Jquery中必不可少的一部分,我们常见的一些事件有单击事件,鼠标事件,键盘事件等等.在Jquery中的学习中为了能使让页面以 ...
- jQuery中的选择器《思维导图》
学习jQuery的课程中,我对jQuery中的选择器有了更深的认识,它的简洁写法,完美的兼容性,可靠的处理机制,都让我们省了很多事, 下面是我在学习过程中对jQuery选择器写的思维导图(全屏查看:& ...
- 如何查询表A中的某字段的值在表B中不存在?
1.测试表创建,插入数据: create table a (id int, name )); create table b (id int); ,'a'); ,'b'); ,'c'); ,'d'); ...
- jQuery笔记(二)jQuery中DOM操作
前言 本篇主要介绍DOM操作,在说DOM操作之前,首先我们应该熟悉DOM树,以一个例子为例来说明DOM树.首先看这段HTML代码.(本文后面的代码如果没有特别指出,都是针对下述HTML代码进行操作) ...
- jQuery中设置form表单中action值的方法
jQuery中设置form表单中action值的方法 (2011-03-17 10:18:19) 转载▼ 标签: 杂谈 html代码: <form id="myFormId&quo ...
随机推荐
- 微信公众号开发上传图文素材带有卡片小程序报错:errcode=45166,errmsg = invalid content hint
微信公众号开发自从支持允许在群发图文中插入小程序,方便了小程序的运营及推广.最近在三方服务开发中,要支持图文素材插入小程序遇到了一个很是棘手的问题.官方给出的插入小程序的示例支持文字.图片.卡片.如下 ...
- Shell case in语句详解
和其它编程语言类似,Shell 也支持两种分支结构(选择结构),分别是 if else 语句和 case in 语句.在<Shell if else>一节中我们讲解了 if else 语句 ...
- jenkins的安装和启用
1.下载Jenkins:下载地址:https://jenkins.io/zh/download/ 2.将Jenkins.war包上传到Tomcat的webapps目录下,本次的目录是/usr/loca ...
- Swift 环境搭建
Swift 环境搭建 Swift是一门开源的编程语言,该语言用于开发OS X和iOS应用程序. 在正式开发应用程序前,我们需要搭建Swift开发环境,以便更好友好的使用各种开发工具和语言进行快速应用开 ...
- JavaWeb学习篇之----Jsp详解
今天我们来看一下Jsp的相关知识,首先来看看一下Jsp的相关定义: 简介: JSP全称是JavaServer Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术 ...
- [JZOJ 100025] 棋盘
题意:求剩余面积. 首先吐槽题号:究竟\(JZOJ\)有多少未公开的题目... 思路: 简单的一批啊... 不知道为啥上午不过下午就过了?? 难道是海螺姑娘光顾我?? 多说了都是灵异故事... 其实就 ...
- python从入门到大神---4、python3文件操作最最最最简单实例
python从入门到大神---4.python3文件操作最最最最简单实例 一.总结 一句话总结: python文件操作真的很简单,直接在代码中调用文件操作的函数比如open().read(),无需引包 ...
- Windows内核驱动开发入门学习资料
声明:本文所描述的所有资料和源码均搜集自互联网,版权归原始作者所有,所以在引用资料时我尽量注明原始作者和出处:本文所搜集资料也仅供同学们学习之用,由于用作其他用途引起的责任纠纷,本人不负任何责任.(本 ...
- 《DSP using MATLAB》Problem 8.46
下雨了,大风降温,一地树叶,终于进入冬季了 代码: %% ----------------------------------------------------------------------- ...
- 文本数据和mysql 里面的数据比较
实现读取TXT文件中的内容然后存到内存,然后将内存中的数据和mysql 数据库里面某张表数据的字段做一个比较,如果比较内存中的数据在mysql 里存在则不做处理,如果不存在则将该数据插入mysql数据 ...