2024-08-13



// 假设已经引入jQuery和EasyUI库,并且有一个基本的布局结构
 
// 动态添加标签页的函数
function addTab(title, url){
    if ($('#tt').tabs('exists', title)){
        $('#tt').tabs('select', title);
    } else {
        var content = '<iframe scrolling="auto" frameborder="0" src="'+url+'" style="width:100%;height:100%;"></iframe>';
        $('#tt').tabs('add',{
            title:title,
            content:content,
            closable:true
        });
    }
}
 
// 调用函数添加标签页
addTab('新标签页', 'new_tab_content.html');

这段代码定义了一个addTab函数,用于向#tt元素(假设为EasyUI的Tabs组件)动态添加标签页。如果标签页已经存在,则选中该标签页;如果不存在,则创建一个新的标签页,并将其内容设置为一个内嵌框架,显示指定的URL。这是一个非常实用的功能,对于需要根据用户的操作动态更新界面的应用程序来说,非常有用。

2024-08-13

在前后端分离的开发模式中,我们通常使用AJAX技术来实现前端和后端之间的数据交换。jQuery为我们提供了一个非常方便的$.ajax()函数来实现这一功能。

以下是使用jQuery $.ajax()实现前后台数据传输的四种方式:

  1. 通过GET方式发送请求并接收数据



$.ajax({
    url: "https://api.example.com/data",
    type: "GET",
    dataType: "json",
    success: function(data) {
        console.log(data);
    },
    error: function(error) {
        console.log("Error: ", error);
    }
});
  1. 通过POST方式发送数据并接收响应



$.ajax({
    url: "https://api.example.com/data",
    type: "POST",
    contentType: "application/json",
    data: JSON.stringify({ key: "value" }),
    dataType: "json",
    success: function(data) {
        console.log(data);
    },
    error: function(error) {
        console.log("Error: ", error);
    }
});
  1. 使用PUT方式更新数据



$.ajax({
    url: "https://api.example.com/data/1",
    type: "PUT",
    contentType: "application/json",
    data: JSON.stringify({ key: "new_value" }),
    dataType: "json",
    success: function(data) {
        console.log(data);
    },
    error: function(error) {
        console.log("Error: ", error);
    }
});
  1. 使用DELETE方式删除数据



$.ajax({
    url: "https://api.example.com/data/1",
    type: "DELETE",
    success: function(data) {
        console.log("Item has been deleted!");
    },
    error: function(error) {
        console.log("Error: ", error);
    }
});
  1. 使用$.ajax()发送请求并接收响应,同时使用async: false使请求同步



var response;
$.ajax({
    url: "https://api.example.com/data",
    type: "GET",
    async: false,
    dataType: "json",
    success: function(data) {
        response = data;
    },
    error: function(error) {
        console.log("Error: ", error);
    }
});
console.log(response);

以上代码中,我们使用jQuery的$.ajax()函数来发送AJAX请求。我们指定了请求的URL、请求类型(GET, POST, PUT, DELETE)、内容类型(通常是"application/json"或"application/x-www-form-urlencoded")、要发送的数据以及预期的响应数据类型。我们还定义了成功和错误回调函数来处理响应或错误。

注意:在实际开发中,我们还需要处理跨域请求,以及为请求添加适当的HTTP头部信息,比如认证信息等。

2024-08-13

以下是一个简单的jQuery Gantt插件的使用示例,用于创建一个包含动态任务的时间轴。




<!DOCTYPE html>
<html>
<head>
    <title>jQuery Gantt Example</title>
    <link rel="stylesheet" href="path/to/jquery.gantt.css" />
    <script src="path/to/jquery.js"></script>
    <script src="path/to/jquery.gantt.js"></script>
    <script>
        $(function() {
            "use strict";
            var ganttData = [
                {
                    "label": "任务 1",
                    "start": "2023-04-01",
                    "end": "2023-04-07"
                },
                {
                    "label": "任务 2",
                    "start": "2023-04-08",
                    "end": "2023-04-14"
                }
                // 添加更多任务...
            ];
 
            $("#gantt").gantt({
                source: ganttData,
                scale: "days",
                minScale: "days",
                maxScale: "months"
            });
        });
    </script>
</head>
<body>
    <div id="gantt" style="width:100%; height:400px;"></div>
</body>
</html>

在这个例子中,我们首先引入了必要的CSS和JavaScript文件。然后,我们定义了一个简单的数据数组ganttData,包含了开始日期和结束日期的任务信息。接下来,我们使用jQuery选择器选中页面上的元素,并调用$("#gantt").gantt()方法来初始化时间轴,并传入我们的数据。这将在页面上创建一个可以通过缩放和拖拽来管理任务的交互式时间轴。

2024-08-13

以下是一个使用 jQuery Treeview 插件的基本示例,它展示了如何将树型菜单添加到网页中:




<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jQuery Treeview 示例</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery.treeview/1.20.0/jquery.treeview.css" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.treeview/1.20.0/jquery.treeview.js"></script>
    <script>
        $(function() {
            $("#browser").treeview({
                control: "#treecontrol",
                persist: "cookie",
                cookieId: "treeview-black"
            });
        });
    </script>
</head>
<body>
 
<div id="treecontrol">
    <strong>菜单</strong>
</div>
 
<ul id="browser" class="filetree">
    <li><span class="folder">文件夹 1</span>
        <ul>
            <li><span class="file">项目 1.1</span></li>
            <li><span class="file">项目 1.2</span></li>
        </ul>
    </li>
    <li><span class="folder">文件夹 2</span>
        <ul>
            <li><span class="file">项目 2.1</span></li>
            <li><span class="file">项目 2.2</span></li>
        </ul>
    </li>
</ul>
 
</body>
</html>

这段代码首先引入了必要的 CSS 和 JavaScript 文件。然后在页面加载完成后,使用 jQuery 调用 .treeview() 方法来初始化树型菜单。$("#browser").treeview({...}) 设置了树型菜单的行为,如持久化(persist)和使用cookie(cookieId)。最后,<ul id="browser" class="filetree"> 定义了树形结构的数据。

2024-08-13

在JavaScript中,如果你想要通过POST请求发送跨域资源共享(CORS),并且设置请求头,你可以使用fetch API。以下是一个示例代码:




fetch('http://example.com/cors-endpoint', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Custom-Header': 'value'
  },
  body: JSON.stringify({ key: 'value' })
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));

在这个例子中,我们向http://example.com/cors-endpoint发送一个POST请求,设置了请求头Content-Typeapplication/json以及自定义头Custom-Header。请求的主体是一个JSON字符串。

确保目标服务器配置了适当的CORS策略以允许你的源发起跨域请求,并且可能需要包括你想要设置的任何自定义头在内。

2024-08-13

在Vue中使用jQuery实现数字键盘的示例代码如下:

  1. 安装jQuery(如果你的项目中还没有安装):



npm install jquery --save
  1. 在Vue组件中引入jQuery并使用:



<template>
  <div>
    <input type="text" @click="openKeyboard" ref="numericInput">
    <div v-show="isKeyboardVisible" class="numeric-keyboard">
      <!-- 数字键盘的布局 -->
    </div>
  </div>
</template>
 
<script>
import $ from 'jquery';
 
export default {
  data() {
    return {
      isKeyboardVisible: false
    };
  },
  methods: {
    openKeyboard() {
      this.isKeyboardVisible = true;
      $('.numeric-keyboard').on('click', '.key-button', function() {
        const val = $(this).text();
        $(this).parents('.numeric-keyboard').prev('input').val(function(i, origText) {
          return origText + val;
        });
      });
    }
  }
};
</script>
 
<style>
.numeric-keyboard {
  display: flex;
  flex-wrap: wrap;
}
.key-button {
  /* 按钮样式 */
}
</style>

在这个例子中,我们创建了一个Vue组件,其中包含一个文本输入框和一个数字键盘。当用户点击输入框时,我们通过jQuery监听键盘上的按钮点击事件,并将选中的数字添加到输入框中。这只是一个简化示例,实际数字键盘可能需要更复杂的逻辑来处理删除键、数字的重复输入等问题。

2024-08-13

以下是一个使用JavaScript实现的简单的头像图片上传插件示例,它支持上传类型的验证、大小的验证以及图片尺寸的验证:




<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Avatar Upload Plugin</title>
<script>
function AvatarUploader(options) {
  const input = document.createElement('input');
  input.type = 'file';
  input.accept = 'image/*';
  input.style.display = 'none';
  input.addEventListener('change', (event) => {
    const file = event.target.files[0];
    if (!file) {
      alert('No file selected.');
      return;
    }
    if (!file.type.startsWith('image/')) {
      alert('File must be an image.');
      return;
    }
    if (file.size > options.maxSize) {
      alert('File size is too large.');
      return;
    }
    const reader = new FileReader();
    reader.onload = (e) => {
      const img = new Image();
      img.onload = () => {
        if (img.width > options.maxWidth || img.height > options.maxHeight) {
          alert('Image dimensions are too large.');
          return;
        }
        options.onSuccess(e.target.result);
      };
      img.src = e.target.result;
    };
    reader.readAsDataURL(file);
  });
 
  this.click = () => input.click();
}
 
// Usage example:
document.addEventListener('DOMContentLoaded', () => {
  const uploader = new AvatarUploader({
    maxSize: 2 * 1024 * 1024, // 2MB
    maxWidth: 500, // px
    maxHeight: 500, // px
    onSuccess: (dataUrl) => {
      // Handle the successful upload here, e.g., update the avatar image.
      console.log('Avatar image uploaded:', dataUrl);
    }
  });
 
  document.getElementById('upload-button').addEventListener('click', uploader.click);
});
</script>
</head>
<body>
<button id="upload-button">Upload Avatar</button>
</body>
</html>

在这个示例中,我们定义了一个AvatarUploader类,它接受一个包含maxSizemaxWidthmaxHeight以及onSuccess回调函数的options对象。点击按钮后,它会触发隐藏的文件输入域,用户选择图片后,会进行文件类型、大小和尺寸的验证。验证通过后,会将图片转换为DataURL,然后调用onSuccess回调函数。

使用时,你需要在HTML中定义一个按钮,并在JavaScript中设置事件监听器来触发上传。这个插件可以根据需求进行扩展,比如添加上传到服务器的功能,或者实现更复杂的验证逻辑。

2024-08-13



// 选择器
$(selector).action()
 
// 基础选择器
$("#elementId") // ID选择器
$(".className") // 类选择器
$("tagName") // 标签选择器
$("*") // 选择所有元素
$(".class, #id, tag") // 组合选择
 
// 层级选择器
$("parent child") // 子代选择器
$("parent > child") // 子元素选择器
$("prev + next") // 紧邻兄弟选择器
$("prev ~ siblings") // 一般兄弟选择器
 
// 过滤选择器
$(":first") // 第一个元素
$(":last") // 最后一个元素
$(":even") // 索引为偶数的元素
$(":odd") // 索引为奇数的元素
$(":eq(index)") // 指定索引的元素
$(":gt(index)") // 大于指定索引的元素
$(":lt(index)") // 小于指定索引的元素
$(":not(selector)") // 不匹配指定选择器的元素
$(":header") // 所有的标题元素(如 h1, h2, h3等)
$(":animated") // 正在执行动画的元素
 
// 表单选择器
$(":input") // 所有的input, textarea, select 和 button 元素
$(":text") // 所有的文本输入框
$(":password") // 所有的密码输入框
$(":radio") // 所有的单选按钮
$(":checkbox") // 所有的复选框
$(":submit") // 所有的提交按钮
$(":reset") // 所有的重置按钮
$(":button") // 所有的按钮
$(":image") // 所有的图像按钮
$(":file") // 所有的文件输入
$(":hidden") // 所有不可见的元素(type为hidden的输入框,或者display:none的元素)
 
// 事件
$(document).ready(function() {
    // 文档加载完成后执行的代码
});
 
$("selector").click(function() {
    // 点击事件的处理程序
});
 
$("selector").dblclick(function() {
    // 双击事件的处理程序
});
 
// 更多事件处理器如 mouseover, mouseout, keydown, keypress, keyup, submit, change 等
 
// CSS操作
$("selector").css("property") // 获取样式属性的值
$("selector").css("property", "value") // 设置一个样式属性
$("selector").css({ "property1": "value1", "property2": "value2" }) // 设置多个样式属性
 
// 内容操作
$("selector").html() // 获取内容
$("selector").html("content") // 设置内容
$("selector").text() // 获取文本内容
$("selector").text("text") // 设置文本内容
 
// 属性操作
$("selector").attr("attribute") // 获取属性值
$("selector").attr("attribute", "value") // 设置属性值
$("selector").attr({ "attribute1": "value1", "attribute2": "value2" }) // 设置多个属性值
 
// 添加和删除类
$("selector").addClass("className") // 添加类
$("selector").removeClass("className") // 删除类
$("selector").toggleClass("className") // 切换类
 
// AJAX
$.ajax({
    url: "url",
    type: "GET",
    dataType: "json",
    success: function(data) {
        // 请求成功后的回调函数
    },
    error: function(xhr, status, error) {
        // 请求失败后的
2024-08-13

原生JS显示和隐藏div:

显示div:




document.getElementById('myDiv').style.display = 'block';

隐藏div:




document.getElementById('myDiv').style.display = 'none';

jQuery显示和隐藏div:

显示div:




$('#myDiv').show();

隐藏div:




$('#myDiv').hide();

注意:确保在使用jQuery代码之前,已经正确引入了jQuery库。

2024-08-13

在使用Layui框架实现省市区联动时,可以使用Layui的选择器(Select)组件。以下是一个简单的实现示例:

  1. 首先,确保你已经在页面中引入了Layui的CSS和JS文件。



<link rel="stylesheet" href="path/to/layui/css/layui.css">
<script src="path/to/layui/layui.js"></script>
  1. 在HTML中添加三个Select元素来分别表示省、市、区/县:



<div class="layui-form">
  <select name="province" lay-filter="province" id="province">
    <option value="">请选择省份</option>
  </select>
  <select name="city" lay-filter="city" id="city">
    <option value="">请选择城市</option>
  </select>
  <select name="district" lay-filter="district" id="district">
    <option value="">请选择区/县</option>
  </select>
</div>
  1. 使用Layui的form模块和jquery来初始化Select并实现联动:



layui.use(['form'], function(){
  var form = layui.form;
  var $ = layui.$;
 
  // 模拟数据,实际应用中应从服务器获取
  var provinces = [{name: '省份1', cities: [{name: '城市1', districts: ['区/县1', '区/县2']}]}];
 
  // 初始化省份
  form.render('select');
 
  // 省份选择 change 事件监听
  form.on('select(province)', function(data){
    var provinceIndex = data.value;
    var cities = provinces[provinceIndex].cities;
 
    // 清空城市和区/县
    $('#city').html('<option value="">请选择城市</option>');
    $('#district').html('<option value="">请选择区/县</option>');
 
    // 更新城市选择
    cities.forEach(function(city){
      $('#city').append('<option value="' + city.name + '">' + city.name + '</option>');
    });
 
    form.render('select'); // 更新城市Select的UI显示
  });
 
  // 城市选择 change 事件监听
  form.on('select(city)', function(data){
    var cityIndex = $('#city option:selected').index();
    var districts = provinces[$('#province option:selected').index()].cities[cityIndex].districts;
 
    // 清空区/县
    $('#district').html('<option value="">请选择区/县</option>');
 
    // 更新区/县选择
    districts.forEach(function(district){
      $('#district').append('<option value="' + district + '">' + district + '</option>');
    });
 
    form.render('select'); // 更新区/县Select的UI显示
  });
});

以上代码实现了基于Layui的省市区联动效果,当选择省份后,城市Select会更新,选择城市后,区/县Select也会更新。这里使用了模拟数据,实际应用中应从服务器获取真实数据。