Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript颜色选择器使用CSS语法I';我不熟悉什么?_Javascript_Jquery_Css - Fatal编程技术网

JavaScript颜色选择器使用CSS语法I';我不熟悉什么?

JavaScript颜色选择器使用CSS语法I';我不熟悉什么?,javascript,jquery,css,Javascript,Jquery,Css,我使用的是jscolor,它是一个javascript颜色选择器插件() 该文档在css类中使用javascript 当jscolor加载src标记时,它使用一个自执行函数调用自己,该函数在启动时查找DOM中所有输入和按钮标记,这些标记具有类jscolor,然后向它们添加一个名为jscolor的属性。当您执行onclick=“document.getElementById('foo').jscolor.show()” 将jscolor对象添加到输入和按钮标记中的相同逻辑也会查看类的其余数据并解

我使用的是jscolor,它是一个javascript颜色选择器插件()

该文档在css类中使用javascript


当jscolor加载src标记时,它使用一个自执行函数调用自己,该函数在启动时查找DOM中所有
输入
按钮
标记,这些标记具有类
jscolor
,然后向它们添加一个名为
jscolor
的属性。当您执行
onclick=“document.getElementById('foo').jscolor.show()”

将jscolor对象添加到
输入
按钮
标记中的相同逻辑也会查看类的其余数据并解析
{padding:20,borderWidth:3}
之类的内容。这就是JavaScript风格的代码在CSS类中的工作方式


所有这些信息都可以从jscolor github页面找到:

当jscolor加载src标记时,它使用一个自执行函数调用自己,该函数在启动时查找DOM中所有
input
button
标记,这些标记具有类
jscolor
,然后向它们添加一个名为
jscolor
的属性。当您执行
onclick=“document.getElementById('foo').jscolor.show()”

将jscolor对象添加到
输入
按钮
标记中的相同逻辑也会查看类的其余数据并解析
{padding:20,borderWidth:3}
之类的内容。这就是JavaScript风格的代码在CSS类中的工作方式


所有这些信息都是从jscolor github页面中找到的:

他们在类定义中做了一些非常非典型的事情,因此语法看起来模糊也就不足为奇了。但情况并非如此。实际上只有三个CSS类具有奇怪的名称:

  • jscolor
  • {20
  • 边框宽度:3}
  • 在js文件中,他们使用正则表达式解析这些CSS值,然后以编程方式应用它们(逻辑上,如果元素具有jscolor类,则查找以
    {
    开头、以
    结尾的字符串)
    ,去掉括号和逗号,并使用空格作为分隔符,就可以应用CSS属性列表)。他们大概不想在下载时附带一个单独的CSS文件

    至于第二个问题,他们刚刚将jscolor定义为一个类,具有自己的方法和属性。他们的代码,第977行:

    jscolor : function (targetElement, options) {
    
    其中定义了大量函数调用。其中,第1046行:

    this.show = function () {
        drawPicker();
    };
    
    此代码定义了一个名为
    show()
    的函数;实际上
    jscolor.show()
    。因此,
    show()
    调用
    drawPicker()
    函数,该函数实际上处理选择器的显示。这意味着他们的
    show()
    方法与您熟悉的
    show()
    方法完全无关。他们已经定义了自己的


    如果您在继续使用他们的代码时自己研究一下他们的代码,您将开始更清楚地了解他们在做什么。jscolor类是如何编写JS类的一个很好的例子。不过,类属性的东西肯定是不寻常的。

    他们对类定义做了一些非常非典型的事情,因此语法看起来晦涩难懂也就不足为奇了。但情况并非如此。实际上只有三个CSS类具有奇怪的名称:

  • jscolor
  • {20
  • 边框宽度:3}
  • 在js文件中,他们使用正则表达式解析这些CSS值,然后以编程方式应用它们(逻辑上,如果元素具有jscolor类,则查找以
    {
    开头、以
    结尾的字符串)
    ,去掉括号和逗号,并使用空格作为分隔符,就可以应用CSS属性列表)。他们大概不想在下载时附带一个单独的CSS文件

    至于第二个问题,他们刚刚将jscolor定义为一个类,具有自己的方法和属性。他们的代码,第977行:

    jscolor : function (targetElement, options) {
    
    其中定义了大量函数调用。其中,第1046行:

    this.show = function () {
        drawPicker();
    };
    
    此代码定义了一个名为
    show()
    的函数;实际上
    jscolor.show()
    。因此,
    show()
    调用
    drawPicker()
    函数,该函数实际上处理选择器的显示。这意味着他们的
    show()
    方法与您熟悉的
    show()
    方法完全无关。他们已经定义了自己的


    如果您在继续使用他们的代码时自己研究一下他们的代码,您将开始更清楚地了解他们在做什么。jscolor类是如何编写JS类的一个很好的例子。但是,类属性的内容肯定是不寻常的。

    也许他们使用一些
    eval
    代码来执行JSON值,比如:
    var instanceConfig=eval(foo.replace(/^jscolor\s+/,”)它不是一个类,它只是一个对象属性。请尝试
    $('#foo')[0].jscolor.show()
    可能他们使用一些
    eval
    代码来执行JSON值,比如:
    var instanceConfig=eval(foo.replace(/^jscolor\s+/,”)它不是一个类,它只是一个对象属性。请尝试
    $('#foo')[0].jscolor.show()