<学习笔记之 JQuery>
1. mouseenter 当鼠标指针进入(穿过)元素时,触发事件
- var is_enter_help = false;
- $("#help-div").mouseenter(function(){
- is_enter_help = true;
- });
- $("#help-div").mouseleave(function(){
- is_enter_help = false;
- });
# 定义一个标志位,并在鼠标指针指向时,置为True- $(document).click(function(){
- if(is_enter_help){
- $('#siber').css({'display':'none'});
- $('#siber-content').css({'display':'inline'})
- $('.page-quick-sidebar-wrapper').addClass('page-quick-sidebar-open');
- $('#siber-text').css({'display':'block'});
- $('#siber-text').addClass('show-style');
- }else{
- if($(event.srcElement).is("#siber-text,#siber-text *")) {
- $('#siber').css({'display':'none'});
- } else {
- $('#siber').css({'display':'block'});
- $('#siber').addClass("bounceInRight");
- $('#siber-text').css({'display':'none'})
- }
- }
- })
该代码段主要用于打开右侧关键字系统
2. $(selector).val(value) 返回或设置被选元素的值
val():获取或者改变指定元素的value值(一般是表单元素)
元素的值是通过 value 属性设置的。该方法大多用于 input 元素。
如果该方法未设置参数,则返回被选元素的当前值。
设置了value值,表示设置value属性值
3. JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。
语法
- JSON.stringify(value[, replacer[, space]])
参数说明:
- value:
必需, 要转换的 JavaScript 值(通常为对象或数组)。
- replacer:
可选。用于转换结果的函数或数组。
如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:""。
如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。
- space:
可选,文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 也可以使用非数字,如:\t。
4. $.ajax()方法详解
1.url:
要求为String类型的参数,(默认为当前页地址)发送请求的地址。
2.type:
要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持。
3.timeout:
要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局设置。
4.async:
要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为false。注意,同步请求将锁住浏览器,用户其他操作必须等待请求完成才可以执行。
5.cache:
要求为Boolean类型的参数,默认为true(当dataType为script时,默认为false),设置为false将不会从浏览器缓存中加载请求信息。
6.data:
要求为Object或String类型的参数,发送到服务器的数据。如果已经不是字符串,将自动转换为字符串格式。get请求中将附加在url后。防止这种自动转换,可以查看 processData选项。对象必须为key/value格式,例如{foo1:"bar1",foo2:"bar2"}转换为&foo1=bar1&foo2=bar2。如果是数组,JQuery将自动为不同值对应同一个名称。例如{foo:["bar1","bar2"]}转换为&foo=bar1&foo=bar2。
7.dataType:
要求为String类型的参数,预期服务器返回的数据类型。如果不指定,JQuery将自动根据http包mime信息返回responseXML或responseText,并作为回调函数参数传递。可用的类型如下:
xml:返回XML文档,可用JQuery处理。
html:返回纯文本HTML信息;包含的script标签会在插入DOM时执行。
script:返回纯文本JavaScript代码。不会自动缓存结果。除非设置了cache参数。注意在远程请求时(不在同一个域下),所有post请求都将转为get请求。
json:返回JSON数据。
jsonp:JSONP格式。使用SONP形式调用函数时,例如myurl?callback=?,JQuery将自动替换后一个“?”为正确的函数名,以执行回调函数。
text:返回纯文本字符串。
8.beforeSend:
要求为Function类型的参数,发送请求前可以修改XMLHttpRequest对象的函数,例如添加自定义HTTP头。在beforeSend中如果返回false可以取消本次ajax请求。XMLHttpRequest对象是惟一的参数。
function(XMLHttpRequest){
this; //调用本次ajax请求时传递的options参数
}
9.complete:
要求为Function类型的参数,请求完成后调用的回调函数(请求成功或失败时均调用)。参数:XMLHttpRequest对象和一个描述成功请求类型的字符串。
function(XMLHttpRequest, textStatus){
this; //调用本次ajax请求时传递的options参数
}
10.success:要求为Function类型的参数,请求成功后调用的回调函数,有两个参数。
(1)由服务器返回,并根据dataType参数进行处理后的数据。
(2)描述状态的字符串。
function(data, textStatus){
//data可能是xmlDoc、jsonObj、html、text等等
this; //调用本次ajax请求时传递的options参数
}
11.error:
要求为Function类型的参数,请求失败时被调用的函数。该函数有3个参数,即XMLHttpRequest对象、错误信息、捕获的错误对象(可选)。ajax事件函数如下:
function(XMLHttpRequest, textStatus, errorThrown){
//通常情况下textStatus和errorThrown只有其中一个包含信息
this; //调用本次ajax请求时传递的options参数
}
12.contentType:
要求为String类型的参数,当发送信息至服务器时,内容编码类型默认为"application/x-www-form-urlencoded"。该默认值适合大多数应用场合。
13.dataFilter:
要求为Function类型的参数,给Ajax返回的原始数据进行预处理的函数。提供data和type两个参数。data是Ajax返回的原始数据,type是调用jQuery.ajax时提供的dataType参数。函数返回的值将由jQuery进一步处理。
function(data, type){
//返回处理后的数据
return data;
}
14.dataFilter:
要求为Function类型的参数,给Ajax返回的原始数据进行预处理的函数。提供data和type两个参数。data是Ajax返回的原始数据,type是调用jQuery.ajax时提供的dataType参数。函数返回的值将由jQuery进一步处理。
function(data, type){
//返回处理后的数据
return data;
}
15.global:
要求为Boolean类型的参数,默认为true。表示是否触发全局ajax事件。设置为false将不会触发全局ajax事件,ajaxStart或ajaxStop可用于控制各种ajax事件。
16.ifModified:
要求为Boolean类型的参数,默认为false。仅在服务器数据改变时获取新数据。服务器数据改变判断的依据是Last-Modified头信息。默认值是false,即忽略头信息。
17.jsonp:
要求为String类型的参数,在一个jsonp请求中重写回调函数的名字。该值用来替代在"callback=?"这种GET或POST请求中URL参数里的"callback"部分,例如{jsonp:'onJsonPLoad'}会导致将"onJsonPLoad=?"传给服务器。
18.username:
要求为String类型的参数,用于响应HTTP访问认证请求的用户名。
19.password:
要求为String类型的参数,用于响应HTTP访问认证请求的密码。
20.processData:
要求为Boolean类型的参数,默认为true。默认情况下,发送的数据将被转换为对象(从技术角度来讲并非字符串)以配合默认内容类型"application/x-www-form-urlencoded"。如果要发送DOM树信息或者其他不希望转换的信息,请设置为false。
21.scriptCharset:
要求为String类型的参数,只有当请求时dataType为"jsonp"或者"script",并且type是GET时才会用于强制修改字符集(charset)。通常在本地和远程的内容编码不同时使用。
案例代码:

- $(function(){
- $('#send').click(function(){
- $.ajax({
- type: "GET",
- url: "test.json",
- data: {username:$("#username").val(), content:$("#content").val()},
- dataType: "json",
- success: function(data){
- $('#resText').empty(); //清空resText里面的所有内容
- var html = '';
- $.each(data, function(commentIndex, comment){
- html += '<div class="comment"><h6>' + comment['username']
- + ':</h6><p class="para"' + comment['content']
- + '</p></div>';
- });
- $('#resText').html(html);
- }
- });
- });
- });

22.顺便说一下$.each()函数:
$.each()函数不同于JQuery对象的each()方法,它是一个全局函数,不操作JQuery对象,而是以一个数组或者对象作为第1个参数,以一个回调函数作为第2个参数。回调函数拥有两个参数:第1个为对象的成员或数组的索引,第2个为对应变量或内容。
- $.ajax({
- "type": "POST",
- "url": '{% url 'run_cli' %}',
- "data": test,
- // "success": function(){}
- })
这段代码是调用CMD命令行执行pybot命令。用于脚本用例执行的
5.
- function dirDataSource(options, callback){
- $.ajax({
- 'url': '{% url 'list_tree' %}',
- 'data': {
- 'suite_id': options.attr?options.attr.suite_id:suite_id,
- "project_id": {{ project_id }},
- 'path': options.attr?options.attr.path:contents
- } // first call with be an empty object
- }).done(function(json_data) {
- callback({
- data: json_data
- });
- });
- }
- // });
解析views方法,获取整个用例树json格式数据信息,.done函数是ajax方法,在ajax执行成功后执行done函数,done函数中的参数json_data来自于ajax的返回值,若ajax执行出错,done则不执行
6. ace_tree:
- else if("type" in options && options.type == "folder") {
- if("additionalParameters" in options && "children" in options.additionalParameters)
- $data = options.additionalParameters.children;//点击父节点,加载子节点
- else $data = {}//no data
- }
7.Handsontable
常规配置:
1.固定行列位置
fixedRowsTop:行数 //固定顶部多少行不能垂直滚动
fixedColumnsLeft:列数 //固定左侧多少列不能水平滚动
2.拖拽行头或列头改变行或列的大小
manualColumnResize:true/false//当值为true时,允许拖动,当为false时禁止拖动
manualRowResize:true/false//当值为true时,允许拖动,当为false时禁止拖动
3.延伸列的宽度
stretchH:last/all/none
//last:延伸最后一列,all:延伸所有列,none默认不延伸。
4.手动固定某一列
manualColumnFreeze:
true/false
//当值为true时,选中某一列,右键菜单会出现freeze
this column选项,该选项的作用是固定这一列不可水平滚动,并会将这一列移动到非固定列的前面。再次右键菜单会出现unfreeze this column,意思是取消该列的固定,并将其还原到初始位置。
5.拖动行或列到某一行或列之后
manualColumnMove:true/false
当值为true时,列可拖拽移动到指定列
manualRowMove:true/false
当值为true时,行可拖拽至指定行
当属性的值为true时,行头或列头可以被拖拽移动,移动后该行或列将会被移动到指定位置,原先该行或列的后面部分自动上移或后退。移动的时候鼠标需选中行线或列线才行。
6.设置当前行或列的样式
currentRowClassName:当前行样式的名称
currentColClassName:当前列样式的名称
7.行分组或列分组
groups:[{cols:[0,2]},{cols:[3,5]},{rows:[0,4]},{rows:[5,7]}]
上面的例子介绍了4个分组,第0-2列为一组,第3-5列为第二组,第0-4行为一组,第5-7列为第二组。分组可在行头或列头看见,分组可被展开或隐藏。
8.允许排序
columnSorting:true/false/对象
//当值为true时,表示启用排序插件
当值为true时,排序插件的使用可通过点击列头文字实现。当值为false时表示禁用排序。当值为对象时,该对象包含两个属性:column:列数。sortOrder:true/false,升序或降序,true为升序排列。当用对象启动插件后可用如下方式禁用插件:
hot.updateSettings({
columnSorting:false
});
排序的使用也可已直接调用sort()方法实现。如下操作:
if(hot.sortingEnabled){
hot.sort(行数,true/false);
//true为升序,false为降序
}
9.显示行头列头
colHeaders:true/fals/数组
//当值为true时显示列头,当值为数组时,列头为数组的值
rowHeaders:true/false/数组
//当值为true时显示行头,当值为数组时,行头为数组的值
10.数据显示
data:[[第一行数据],[第二行数据],…[第n行数据]]/对象数组
获取数据的方法:hot.getData()。
加载数据的方法:hot.loadData(data)。
当不需要显示某一列的时候可用如下格式设置:
columns:[
{data:0},
{data:2}
]
这里就不显示第二列数据,只有第1、3列数据
11.右键菜单展示
contextMenu:true/false/自定义数组 //当值为true时,启用右键菜单,为false时禁用
12.自适应列大小
autoColumnSize:true/false //当值为true且列宽未设置时,自适应列大小
13.minCols:最小列数
minRows:最小行数
minSpareCols:最小列空间,不足则添加空列
maxCols:最大列数
maxRows:最大行数
minSpareRows:最小行空间,不足则添加空行
14.observeChanges:true/false //当值为true时,启用observeChanges插件
15.colWidths:[列宽1,列宽2,…]/列宽值
以下代码用于展示右侧,用例数据,以电子表格的形式
- if (data.target.attr.id){
- if (data.target.attr.item_type == "testcase" || data.target.attr.item_type == "keyword"){
- $.ajax({
- url: "{% url 'table_testsuite' %}",
- data: {id: data.target.attr.id, item_type: data.target.attr.item_type},
- success: function (json_data) {
- var json_data = jQuery.parseJSON(json_data);
- $("#settings_table").handsontable({
- data: json_data["settings"],
- rowHeaders: true,
- colHeaders: false,
- minSpareCols: 1,
- minSpareRows: 1,
- contextMenu: true,
- allowInsertColumn: false,
- allowRemoveColumn: false,
- preventOverflow: "horizontal"
- });
- var ins = $("#testcases_table").handsontable({
- data: json_data["contents"].length ? json_data["contents"] : undefined,
- rowHeaders: true,
- colHeaders: false,
- minSpareCols: 1,
- minSpareRows: 1,
- contextMenu: true,
- manualRowMove: true,
- allowInsertColumn: false,
- allowRemoveColumn: false,
- preventOverflow: "horizontal",
- cells: function (row, col, prop) {
- var cellProperties = {};
- cellProperties.renderer = cell_render; // uses function directly
- return cellProperties;
- }
- }).handsontable("getInstance");
- function cell_change(changes, source) {
- if (source != "loadData"){
- $(changes).each(function (index, element) {
- var row = element[0];
- var col = element[1];
- var val = element[3];
- if (is_for_line_begin(ins, row, col)){
- if (val && !ins.getDataAtCell(row, col - 1))
- ins.setDataAtCell(row, col - 1, "\\");
- else if (ins.getDataAtCell(row, col - 1) == "\\" && !val){
- ins.setDataAtCell(row, col - 1, "");
- }
- }
- })
- }
- }
- ins.addHook("afterChange", cell_change);
- },
- error: function(){
- alert("获取用例失败!\r\n请尝试刷新本页面,若仍存在该错误请联系管理员");
- }
- });
- }
- }
<学习笔记之 JQuery>的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- Nodejs开发微信公众号中控服务
本文已同步到专业技术网站 www.sufaith.com, 该网站专注于前后端开发技术与经验分享, 包含Web开发.Nodejs.Python.Linux.IT资讯等板块. 本项目旨在为多个微信公众号 ...
- CARS: 华为提出基于进化算法和权值共享的神经网络结构搜索,CIFAR-10上仅需单卡半天 | CVPR 2020
为了优化进化算法在神经网络结构搜索时候选网络训练过长的问题,参考ENAS和NSGA-III,论文提出连续进化结构搜索方法(continuous evolution architecture searc ...
- winform怎么实现财务上凭证录入和打印
序言 现如今存在的财务软件层出不穷,怎么样让自己的业务系统与财务系统相结合,往往是很多公司头痛的问题.大多数公司也没有这个能力都去开发一套属于自己的财务软件,所以只有对接像金蝶用友这类的财务软件,花费 ...
- Win安装docker
Windows Docker 安装 win7.win8 系统 win7.win8 等需要利用 docker toolbox 来安装,国内可以使用阿里云的镜像来下载,下载地址:http://mirror ...
- 文件密码忘记了怎么办,教你如何使用Python破解密码
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:轻松学编程小梁 PS:如有需要Python学习资料的小伙伴可以加点击下 ...
- Xshell 中文提示乱码
1.Alt+P 打开配置对话框,点击终端->编码,选择Unicode(utf-8)编码
- Python爬取养眼图片
1.准备 各位绅士们,你可能会觉得疫情在家无聊,那么现在我们的Python语言可以满足你们的需求.项目需要的工具(1)Python3(2)requests库requests库可以通过代码pip ins ...
- @SessionAttributes 的使用
@SessionAttributes 注解只用作用在 类 上,作用是将指定的 Model 的键值对保存在 session 中.可以让其他请求共用 session 中的键值对. 指定保存的属性名 作用是 ...
- 详解 final 和 static
在我们上一篇博文中提到了 fianl 这个关键字,对于这个关键字,本人在初学时也耗费了极大地心血,甚至和师兄进行了激烈的讨论,并且,在我们讨论.尝试 以及 翻阅各种资料,最终得出了合适.易懂的解释. ...
- JS:document.documentElement对象的
document.documentElement.clientWidth 获取浏览器窗口文档显示区域的宽度,不包括滚动条. document.documentElement.clientHeight ...