自定义映像代替本地复选框选择、删除和提交方法

UI女人觉得原生复选框丑陋,必须用图片代替,然后照她说。效果是这样的:


要替换本机复选框。所以这是实现本机复选框的问题。我们将能够实现这些点。

1。单击列表中的图片。图片将更改为相反的图片。

2。如果当前状态已满,则选中列表以将图片中的项选中为未选中状态。

如果单击列表中的某个项来选择状态,则选中图像以检查状态。

三.选择功能

4。单击删除删除所有选定的图片。

1。准备:因为我们必须使用大量的两个图片来切换,我们单独定义它:


无功uncheckurl = 'images /选中。png;
无功checkurl = 'images /查看PNG;


2。点击选中的图片列表,将图片转化为相反的变化,并可能导致选择图片。

我们使用on事件,因为列表中的信息是动态添加的。


单击复选框图片
$(# UL ),(听到咔哒声,李IMG,函数(事件){ {)

imgdom = $(this)功;

如果(imgdom.attr(src)= = checkurl){
$(# selectallimg )Attr(src。
ImgDom.attr(src
其他{ }
ImgDom.attr(src

上半部分是转换图像,下一部分是检测是否转换所有图片。
通过比较总数确定图片和图片的数量。
imglength = $(var的# ul IMG的长度);
无功checklength = 0;

对于(var i = 0;i < imglength;i++){
($如果(' # ul IMG)。Eq(我),Attr(src)= = checkurl){
checklength + +;
}
}

如果(imglength = = checklength){
$(# selectallimg )Attr(src。
}
}
});


三.选择功能。选择图标在同一时间改变,所有的变化与图标一致,选择图标。


选择图标
$(# selectallimg)。Click(function(){)
如果($(this)。Attr(src)= = checkurl){

$(这)。Attr(src
$(# ul IMG)。Attr(src
其他{ }
$(这)。Attr(src
$(# ul IMG)。Attr(src
}
});


4。删除功能。删除按钮并删除所选图片所在的行。

注:本周期内的反循环。这是因为如果顺序循环删除,真正的imglength将会更小,而其余所有节点的索引值会发生变化。向前移动,EQ(i)将删除序列号为I.的节点。




删除选定的数据
$(# del)。Click(function(){)

imglength = $(var的# ul IMG的长度);
无功checkdom =;

对于(var i = imglength - 1;我> = 0;我--){
checkdom = $(# ul IMG)。Eq(我);
如果(checkdom.attr(src)= = checkurl){
checkdom.parent()删除();
};
};

});


5。最后,当我们要提交一份表格时,我们如何处理它我们是用ajax提交还是直接提交

这里有两种思考方法。

5.1 Ajax思维,我更喜欢使用ajax提交。

以同样的方式,deviceidarr获取所选框中的内容。你想得到的列ID,这是类似的。


无功deviceidarr = { };
$(# ul IMG)。每个(函数(){(){
如果($(this)。Attr('src)= = checkurl){
DeviceID =装饰($(this)。父()。文本()));
DeviceIdArr.push(DeviceID);
}
});


提出意见的5.2种形式。

在每一张图片的旁边,都有一个隐藏的复选框,这样用户就看不到了。

每次修改所选图片时,相应的隐藏复选框的选定状态相应地被修改。

最后一个提交是直接提交以隐藏复选框的状态。

调试时,您可以显示隐藏的复选框,这使我们很方便地查看复选框和图片的对应状态是否正确。

6。一点优化意见。为了避免图片的第一次点击切换画面的延迟,可以预取图片的选定状态和图片的未选中状态。

例如,未选中的图标将显示在默认状态下,选中的状态图标不显示。如果单击再次加载,就会出现延迟。

解决办法是在这页的底部加上这句话。





当然,你也可以使用csssprites向导地图。

注意:本文将使用jQuery使用自定义图片代替原生复选框复选框来选择、删除、提交。

把它转换成原生Javascript并不难。

这些都是小的,因为我们带来的自定义图像,而不是本地复选框选择,删除和提交的所有方法的内容,我希望有很多的支持。