jquery - jQuery .click 与 .change
问题描述
我刚刚开始学习 Javascript 和 jQuery(1 天!)。我昨天遇到了一个问题,我最终解决了,但不知道为什么改变会奏效。
TLDR;在 jQuery 中,为什么不.change
通过 id 标签触发切换/复选框.click
?
下面的详细解释:
我希望了解原因并找出我所做的是否真的是解决我遇到的问题的正确方法。
我正在尝试创建一个可以打开和关闭的项目列表,并通过 AJAX 更新后端。当我建立我的两个示例列表时,当我单击一个按钮时,它会切换所有按钮。
我通过类调用(不是唯一的),所以我将每个移动到一个唯一的 id,然后 jQuery.click
函数停止工作。在把我的头撞到墙上几个小时后,我变成.click
了.change
- 它开始工作了。
问题:为什么.change
使用 id 标签触发正常.click
而不触发?
为什么这不能按原样工作?
$(document).ready(function() {
$('#toggle1').click(function() {
var current_status = $('#engineer1').text();
$('#engineer1').html('Changed 1');
});
});
$(document).ready(function() {
$('#toggle2').click(function() {
var current_status = $('#engineer2').text();
$('#engineer2').html('Changed 2');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js"></script>
<link href="https://gitcdn.github.io/bootstrap-toggle/2.2.2/css/bootstrap-toggle.min.css" rel="stylesheet">
<script src="https://gitcdn.github.io/bootstrap-toggle/2.2.2/js/bootstrap-toggle.min.js"></script>
<input id="toggle1" type="checkbox" checked data-toggle="toggle" data-on="Ready" data-off="Not Ready" data-onstyle="success" data-offstyle="danger">
<div id="engineer1">Should Change</div>
<input id="toggle2" type="checkbox" checked data-toggle="toggle" data-on="Ready" data-off="Not Ready" data-onstyle="success" data-offstyle="danger">
<div id="engineer2">Should Change</div>
解决方案
您的引导插件以某种方式覆盖了您的命令。我相信 .click 事件正在改变您的切换以某种方式执行,而不是您的附加功能。
$(document).ready(function() {
$('#toggle1').click(function() {
var current_status = $('#engineer1').text();
$('#engineer1').html('Changed 1');
});
});
$(document).ready(function() {
$('#toggle2').click(function() {
var current_status = $('#engineer2').text();
$('#engineer2').html('Changed 2');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<input id="toggle1" type="checkbox" checked data-toggle="toggle" data-on="Ready" data-off="Not Ready" data-onstyle="success" data-offstyle="danger">
<div id="engineer1">Should Change</div>
<input id="toggle2" type="checkbox" checked data-toggle="toggle" data-on="Ready" data-off="Not Ready" data-onstyle="success" data-offstyle="danger">
<div id="engineer2">Should Change</div>
推荐阅读
- r - ggplot 热图网格线格式 geom_tile 和 geom_rect
- javascript - 在 Keycloak 10 中部署 Javascript 策略
- javascript - 使用 Chrome 扩展程序进行更改输入 URL 而不是用户选择的图像文件
- c++ - 为什么在返回 ostream 类时使用引用?
- javascript - 将计数器分配给对象属性javascript C#
- javascript - 在 nextjs 应用程序中指向我的本地主机的 axios api 调用它在服务器端工作正常
- javascript - 我的交换函数对我的返回数组没有任何影响
- bash - 处理 .htpasswd 文件的 Ubuntu cron
- android - 如何在本机反应中将捆绑文件复制到文档目录
- python - 无法从 DJANGO 获取输入/输出