在页面加载时运行Jquery代码一次
Run Jquery code once on page load
我有两个表单字段(十六进制颜色),当用户点击它们时就会激活。
如果用户正在编辑现有的数据集,那么我会加载颜色,并在页面加载时将其显示在字段中。加载页面时如何运行脚本,以便在字段旁边显示正确的颜色?
那么,当页面加载时,我如何运行$('#colorpicker1').colpick()
和$('#colorpicker2').colpick()
呢?
我运行的脚本是http://colpick.com/plugin(示例#1,但页面加载时字段中的数据已就绪)
感谢
$(document).ready(function (){
$('#colorpicker1').colpick({
layout:'hex',
submit:0,
onChange:function(hsb,hex,rgb,el,bySetColor) {
$(el).css('border-color','#'+hex);
// Fill the text box just if the color was set using the picker, and not the colpickSetColor function.
if(!bySetColor) $(el).val(hex);
}
}).keyup(function(){
$(this).colpickSetColor(this.value);
});
$('#colorpicker2').colpick({
layout:'hex',
submit:0,
onChange:function(hsb,hex,rgb,el,bySetColor) {
$(el).css('border-color','#'+hex);
// Fill the text box just if the color was set using the picker, and not the colpickSetColor function.
if(!bySetColor) $(el).val(hex);
}
}).keyup(function(){
$(this).colpickSetColor(this.value);
});
});
请参阅引用的plunker,JS&颜色选择器的CSS已从您链接的网站中获取。
http://plnkr.co/edit/nYSY6b7JJwdHXJ7SmcdP?p=preview
理想情况下,这种模式可以解决您的问题-
<script>
$(function(){
$(".className").colpick({
/*
Inner Code.
*/
});
});
</script>
编辑:好的,所以你的问题和插件无关。看看更新后的plunker-http://plnkr.co/edit/nYSY6b7JJwdHXJ7SmcdP?p=preview
$.each($('.colorpicker'),function(){
$(this).css('background','#'+$(this).val());
});
这将解决您的问题,因为插件没有任何方便的方法/选项。
EDIT-最终解决方案
要加载输入字段中已经存在的颜色,并正确激活脚本,以下是操作方法:
$.each($('.colorpicker'),function(){
//init code
var defCol = $(this).val();
$(this).css('border-color','#'+defCol);
//plugin
$(this).colpick({
layout:'hex',
submit:0,
color: defCol,
onChange:function(hsb,hex,rgb,el,bySetColor) {
$(el).css('border-color','#'+hex);
// Fill the text box just if the color was set using the picker, and not the colpickSetColor function.
if(!bySetColor) $(el).val(hex);
}
}).keyup(function(){
$(this).colpickSetColor(this.value);
});
});
$(window).load(function(){
$('#colorpicker1, #colorpicker2').colpick()
});
试试这个:
Jquery提供onload或ready函数以在加载时执行脚本-
$(document).ready(function){
alert("document ready occurred!");
});
$(window).load(function){
alert("window load occurred!");
});
在文档准备就绪时执行一些功能:
$(document).ready(function(){
$('#colorpicker1').colpick()
$('#colorpicker2').colpick()
})
$( document ).ready()
就是您所需要的。
这样使用:
$( document ).ready(function(){
// the document is ready now, do stuff here
});
$(document).ready()| jQuery学习中心
相关文章:
- 可能只在for循环内部运行一次代码块
- 在单击事件中,第一次单击时激发代码一次,其余代码在所有单击时运行
- JavaScript 只在 php 代码中执行一次
- 是否有脚本/代码可以一次将链接属性添加到多个链接
- 计划每60秒运行一次代码
- ASP.NET:每5分钟从代码后面调用一次弹出窗口
- 为什么我的代码可以在chrome上工作,而不是一次使用cordova编译
- 代码只执行一次,但应该继续执行
- 有没有可能的方法可以在一次ASP按钮单击中同时显示JavaScript和服务器端代码中的消息
- 我想单击一个按钮,一次只执行已经制作的程序中的一行代码.(JavaScript)
- 浏览器化只执行一次模块代码,在多个需要调用上
- 如何获取单击元素的类值,并使用此值在 jquery 中最后一次出现此类之后放置一段 html 代码
- 如何在文本区域的焦点上执行一次代码
- 强制键控事件每个键代码仅触发一次
- 如何修复此代码以显示 10 秒并一次又一次地永远隐藏 10 秒
- Javascript - 滚动事件的效率,仅运行一次代码
- Keydown只运行一次代码
- 每10秒执行一次代码,但也从0秒开始
- 每隔几秒钟只在setInterval函数内执行一次代码
- 每4秒重复一次代码