jQuery& miniColors - 设置颜色

时间:2012-10-09 16:34:35

标签: jquery background-color color-picker

当您点击add new按钮时,jQuery会将DIVs新插件miniColor插入CONTAINER<div id="add" style="background:yellow; width:100px;cursor:pointer"> add new </div> <div id="container"> </div> 。但在这个DIV中,在第一次点击DIV之前,你看不到miniColor元素。

jsfiddle示例 - http://jsfiddle.net/ynternet/m7c7e/4/

  1. 为什么首次点击DIV后会显示miniColor元素?
  2. 如何更改背景颜色?
  3. 如何更改字体颜色?
  4. HTML

    function handler() {
        if ($(this).find("#menu").length) {
            return;
        }
        $('input').miniColors({                         
           opacity: true
        });
        var currentIndex = parseInt($(this).css('z-index'), 10);
        var newIndex = currentIndex + 1;
        $(this).css('z-index', newIndex);
    }
    $("#add").on({
        click: function(e) {
            var timestamp = Date.now();
            var posx = Math.floor(Math.random() * 400);
            var posy = Math.floor(Math.random() * 400);
            $('#container').append(function() {
                return $('<div class="add_to_this" id="' + timestamp + '" style="left:' + posx + 'px; top:' + posy + 'px; cursor:pointer;">Click me, drag, change z-index & color <input type="hidden" name="color" value="#FFCC00" data-opacity=".5" /> </div>').click(handler).draggable({
                    containment: "#container",
                    scroll: false,
                    cursor: 'lock'
            });
        });
        }
    });
    

    的jQuery

    #container {
        width:500px;
        height:500px;
        background: palegoldenrod;
        position: relative;
        top:20px;
        left: 100px;
        padding: 0px;
        z-index:2;
    }
    .add_to_this {
        padding:5px;
        position: absolute;
        display:inline-block;
        background: yellowgreen;
        width:200px;
        height:70px;
        -moz-user-select: none;
        -khtml-user-select: none;
        -webkit-user-select: none;
        user-select: none;
        -o-user-select: none;
        z-index:100;
    }
    

    CSS

    {{1}}

1 个答案:

答案 0 :(得分:1)

那是因为你似乎在click(处理程序)函数中将minicolor附加到Div。

.click(handler);

您正在设置handle函数中的minicolor框,当您单击div时会触发该函数。