$().click()和$().on('click',function(){})的区别

本文详细解析了jQuery中click和on方法的使用差异,click适用于页面加载时已存在的元素,而on则支持动态添加的元素,展示了如何通过实例代码实现两者的不同效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

().click()和().click()和().click()().on(‘click’,function(){})的区别

1. $(选择器).click(fn)

当选中的选择器被点击时触发回调函数fn。只针对与页面已存在的选择器。

<body>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
    </ul>
    <script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
    <script>
    $(function() {
        $('ul>li').click(function() {
            console.log($(this).html());
        });
        $('ul').append('<li>5</li><li>6</li>');
    })
    </script>
</body>

后面动态创建的5和6,没法进行点击事件触发。

2. $(选择器).on(‘click’,function(){})

on方法包含很多事件,点击,双击等等事件。和$().click()的用法一样,最大的区别即优点是如果动态创建的元素在该选择器选中范围内是能触发回调函数。
(支持动态绑定元素,即页面上元素有添加或变化后仍可绑定,前提是‘选择器’须是目标绑定元素的父元素)

<body>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
    </ul>
    <script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
    <script>
    $(function() {
        $('body').on('click', 'ul>li', function() {
            console.log($(this).html());
        });
        $('ul').append('<li>5</li><li>6</li>');
    })
    </script>
</body>

动态添加的元素也能被点击触发函数。

### 如何使用 `$.ajax` 发起 POST 请求 在 jQuery 中,可以通过配置 `type` 属性为 `'POST'` 来使用 `$.ajax()` 方法发起 POST 请求。以下是详细的说明示例代码。 #### 配置项详解 - **url**: 指定发送请求的目标地址。 - **type**: 设置请求方式,这里设置为 `'POST'` 表示发起 POST 请求。 - **data**: 提交的数据,通常是一个键值对对象。 - **success**: 当请求成功时触发的回调函数,参数通常是服务器返回的结果。 - **error**: 可选,当请求失败时触发的回调函数。 以下是一个完整的示例: ```javascript <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script> $(function () { $('.btnPOST').on('click', function () { $.ajax({ type: 'POST', url: 'http://www.example.com/api/submit', // 替换为目标 URL data: { name: 'John Doe', age: 28 }, // 要提交的数据 success: function (response) { console.log('Success:', response); }, error: function (xhr, status, error) { console.error('Error:', error); } }); }); }); </script> <button class="btnPOST">使用 $.ajax 发起 POST 请求</button> ``` 上述代码展示了如何通过点击按钮来发起一个 POST 请求,并传递数据给目标 API[^3]。 注意:实际开发中需要替换 `url` 地址为你自己的服务端接口路径。 --- #### 关于 `$.post` `$.ajax` 的区别 虽然 `$.post` 是一种简化版的方法用于快速实现 POST 请求,但它缺少一些高级选项(如错误处理)。因此,在需要更多控制的情况下推荐使用 `$.ajax`[^4]。 例如,下面是比较两者的简单对比: - 使用 `$.post`: ```javascript $.post('http://www.example.com/api/submit', { name: 'John Doe', age: 28 }, function(response){ console.log('Response from server:', response); }); ``` - 使用 `$.ajax`: ```javascript $.ajax({ type: 'POST', url: 'http://www.example.com/api/submit', data: { name: 'John Doe', age: 28 }, success: function(response) { console.log('Response from server:', response); }, error: function(xhr, status, error) { console.error('An error occurred:', error); } }); ``` 可以看出,`$.ajax` 更加灵活并支持更多的自定义配置[^1]。 --- #### 数据格式化注意事项 默认情况下,`$.ajax` 将会把 `data` 参数序列化成查询字符串形式(application/x-www-form-urlencoded),但如果希望发送 JSON 格式的请求体,则需额外指定 `contentType` 手动转换数据结构: ```javascript $.ajax({ type: 'POST', url: 'http://www.example.com/api/jsonSubmit', contentType: 'application/json', // 声明发送的是JSON格式 data: JSON.stringify({ key: 'value' }), // 手动将JavaScript对象转为JSON字符串 success: function(data) { console.log('Data received:', data); }, error: function(errorThrown) { console.error('Failed to send request:', errorThrown); } }); ``` 此部分适用于现代 RESTful 接口设计场景下[^2]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值