<a href='#' onClick ='backcolor();' class='pagecolor' id='firstpage-right-pagecolor' >
<img src='". Yii::app()->baseURL.'/images/color.png'."'></a>
这里我调用backcolor函数(important-在控制器中),其定义如下所示..
function backcolor() {
$('.pagecolor').colpick({
onSubmit:function(hsb,hex,rgb,el){
var divid = $(el).closest('div').attr('id');
$('#'+divid).css('background-color', '#'+hex);
$(el).colpickHide();
$.ajax({
url:baseURL+'/index.php/MyPhotoBooks/addbackground',
type:'POST',
data:{color:hex,divid:divid},
success:function(){
//$("#"+divid).css('height', '80%');
},
});
}
});
};
仅适用于第二次点击..首次点击颜色选择不显示..
答案 0 :(得分:0)
这完全是预期的行为。
您似乎在点击相同元素时将colorpick绑定到元素。你需要在页面加载时这样做。
推荐解决方案:
将onClick
更改为onload
。这将确保在加载元素时,将颜色选择器绑定到它。接下来,当点击colorpicker元素时,它应该可以工作。
<a href='#' onClick ='backcolor();' class='pagecolor' id='firstpage-right-pagecolor' >
到
<a href='#' onload ='backcolor();' class='pagecolor' id='firstpage-right-pagecolor' >
-----替代方法---------
插件会自动处理单击该元素时的颜色标记。所以只需将功能代码更改为
即可$(function(){
$('.pagecolor').colpick({
onSubmit:function(hsb,hex,rgb,el){
var divid = $(el).closest('div').attr('id');
$('#'+divid).css('background-color', '#'+hex);
$(el).colpickHide();
$.ajax({
url:baseURL+'/index.php/MyPhotoBooks/addbackground',
type:'POST',
data:{color:hex,divid:divid},
success:function(){
//$("#"+divid).css('height', '80%');
},
});
}
});
});
这将确保对页面加载进行绑定。另外,请务必从onclick
元素中删除.pagecolor
处理程序。