Jquery 委托方法应用程序
Jquery delegate method application
如何将 .delegate 方法应用于这一行 jquery?
$(function() {
$("input[type='checkbox']").on('change', function() {
if (this.checked) {
$(".loadingItems").fadeIn(300);
var color = encodeURI(this.value);
$(".indexMain").load('indexMain.php?color=' + color, function() {
$(".indexMain").fadeIn(slow);
});
$(".loadingItems").fadeOut(300);
} else {
$(".loadingItems").fadeIn(300);
$(".indexMain").load('indexMain.php', function() {
$(".loadingItems").fadeOut(300);
});
}
});
});
形式:
echo "<input type='checkbox' class='regularCheckbox' name='color[]' value='".$colorBoxes[color_base1]."' /><font class='similarItemsText'> ".$colorBoxes[color_base1]."</font><br />";
PHP接收颜色:
$color = $_GET['color'];
$items = $con -> prepare("SELECT * FROM item_descr WHERE color_base1 = :colorbase1");
$items -> bindValue(":colorbase1", $color);
while($info = $items->fetch(PDO::FETCH_ASSOC))
{ ....
我需要允许在复选框集中进行多项选择。
现在你已经向我们展示了更多关于你真正想要做的事情,你将不得不改变你的代码的工作方式,.delegate()
对解决这个问题没有用。
现在,在构造将与 indexMain.php
一起使用的 URL 时,您只检查一个复选框的值。 相反,您需要在构造该 URL 时检查所有选中复选框的值。
当选中多个复选框时,您不会说您希望如何构造 URL,但从结构上讲,代码将如下所示:
$(function() {
$("input[type='checkbox']").on('change', function() {
var colors = [];
$("input[type='checkbox']:checked").each(function() {
colors.push(this.value);
});
if (colors.length) {
$(".loadingItems").fadeIn(300);
$(".indexMain").load('indexMain.php?color=' + colors.join("+"), function() {
$(".indexMain").fadeIn(slow);
});
$(".loadingItems").fadeOut(300);
} else {
$(".loadingItems").fadeIn(300);
$(".indexMain").load('indexMain.php', function() {
$(".loadingItems").fadeOut(300);
});
}
});
});
当选择一种或多种颜色时,此代码将为.load()
命令生成如下所示的 URL:
indexMain.php?color=blue+yellow+green+orange
如果未选择任何颜色,它将调用不带其他参数的indexMain.php
。
由您的服务器代码来解析 URL 中的颜色并创建所需的响应。
$(document).on('change', 'input[type=checkbox]', function() {
// code
});
使用 jQuery .on()
你可以做到这一点。
.on()
的语法:
$(static_parent).on( eventName, target, handlerFunction);
其中static_parent
表示target
的非动态容器,target
是绑定事件的元素。
委托可以写成如下
$("table").delegate("td", "click", function(){$(this).toggleClass("chosen");});
同样的事情也可以使用 latest(可从 jquery 1.7 获得)on() 实现,如下所示
$("table").on("click", "td", function(){$(this).toggleClass("chosen");});
相关文章:
- 使用jquery.load('pageName')方法时,未从应用程序缓存加载Html页
- 有没有一种方法可以从Javascript检测特定的应用程序是否安装在(AndroidiOS)设备上
- Meteor应用程序无法运行-对象#<编译器>没有方法'主机'
- 将JSON存储和恢复到此Ionic应用程序的最有效方法
- 在变量中保存值的最佳方法是在应用程序关闭后使用,然后使用apachecordova在android中重新启动
- 使用子字符串方法时应用程序挂起的原因
- 如何让应用程序帮助程序方法在发送的请求为 JS 格式时工作
- 验证数据并将其保存到数据库以供实时应用程序使用的正确方法
- Jquery 委托方法应用程序
- 在单页应用程序上进行客户端路由的正确方法是什么
- 网络应用程序的正确instagram身份验证方法(没有instagram帐户的用户)
- 从angular js中的另一个ng应用程序调用方法
- Nodejitsu:有没有一种方法可以对应用程序进行密码保护
- 有没有一种方法可以在IE8中解决我的Rails javascript应用程序.js的问题
- 如何在Spotify应用程序中创建discincts JS方法
- 有没有一种简单的方法可以将ExtJS 4 MVC应用程序转换为ExtJS DeftJS MVC
- iOS版离线Jquery Mobile应用程序中处理导航的正确方法
- Ember.js应用程序架构与路由器,如何避免重复的方法
- 谷歌应用程序脚本:如何在不使用getComment()方法的情况下将第二条注释添加到第一条注释中
- 设计具有数据持久性的web应用程序的更好方法