colorpick首次onclick没有工作。它在第二次点击时工作..需要回答

时间:2014-11-25 09:40:02

标签: php jquery yii

<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%');
                        },
                    }); 
                }   
            });
        };

仅适用于第二次点击..首次点击颜色选择不显示..

1 个答案:

答案 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处理程序。