Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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 jQuery每个函数都不能正常工作_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript jQuery每个函数都不能正常工作

Javascript jQuery每个函数都不能正常工作,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我为民意测验生成循环计数器,在这里我为每个答案绘制计数器 我正在使用这个“插件”: 问题: 它不是从获取文本值,也不是为每个div绘制计数器 注意:对于一个div,它工作正常 例子: HTML: 15 50 75 JS: jQuery(文档).ready(函数(){ 函数提取计数器(百分比){ jQuery('div.pollAnswerBar').html(“”+(百分比>50?“”):“”+“”); var deg=360/100*百分比; jQuery('#slice.pie').c

我为民意测验生成循环计数器,在这里我为每个答案绘制计数器

我正在使用这个“插件”:

问题: 它不是从
获取文本值,也不是为每个div绘制计数器

注意:对于一个div,它工作正常

例子:

HTML:
15
50
75
JS:
jQuery(文档).ready(函数(){
函数提取计数器(百分比){
jQuery('div.pollAnswerBar').html(“”+(百分比>50?“”):“”+“”);
var deg=360/100*百分比;
jQuery('#slice.pie').css({
“-moz变换”:“旋转(“+deg+”deg)”,
“-webkit变换”:“旋转(“+deg+”deg)”,
“-o变换”:“旋转(“+deg+”deg)”,
“变换”:“旋转(“+deg+”deg)”
});
jQuery('.percent').html(Math.round(percent)+'%;
}
jQuery('.pollAnswerBar')。每个(函数(){
var percent=jQuery(this).text();
控制台日志(百分比);
提款计数器(百分比);
});
});
这是工作小提琴:

您正在修改所有元素,而不是单独指定每个元素

这是工作代码

JS:

jQuery(文档).ready(函数(){
函数drawCounter(百分比,元素){
jQuery(element).html(“”+(百分比>50?“”):“”+“”);
var deg=360*(百分比/100);
jQuery('#slice.pie',element).css({
“-moz变换”:“旋转(“+deg+”deg)”,
“-webkit变换”:“旋转(“+deg+”deg)”,
“-o变换”:“旋转(“+deg+”deg)”,
“变换”:“旋转(“+deg+”deg)”
});
jQuery('.percent',element).html(Math.round(percent)+'%;
}
jQuery('.pollAnswerBar')。每个(函数(索引,元素){
var percent=jQuery(element).text();
控制台日志(百分比);
提取计数器(百分比,元素);
});
});
通过将选择限制在单个元素的范围内,例如
jQuery('.percent',element)
您针对的是正确的元素,而不是所有
.percent
元素。

下面是工作提琴:

您正在修改所有元素,而不是单独指定每个元素

这是工作代码

JS:

jQuery(文档).ready(函数(){
函数drawCounter(百分比,元素){
jQuery(element).html(“”+(百分比>50?“”):“”+“”);
var deg=360*(百分比/100);
jQuery('#slice.pie',element).css({
“-moz变换”:“旋转(“+deg+”deg)”,
“-webkit变换”:“旋转(“+deg+”deg)”,
“-o变换”:“旋转(“+deg+”deg)”,
“变换”:“旋转(“+deg+”deg)”
});
jQuery('.percent',element).html(Math.round(percent)+'%;
}
jQuery('.pollAnswerBar')。每个(函数(索引,元素){
var percent=jQuery(element).text();
控制台日志(百分比);
提取计数器(百分比,元素);
});
});

通过将选择限制在单个元素的范围内,例如
jQuery('.percent',element)
您针对的是正确的元素,而不是所有
.percent
元素。

您不需要在此处指定每个()函数,请尝试以下操作:

function myfun(){
        var percent = jQuery(this).text();
        console.log(percent);
        drawCounter(percent);
    });
jQuery('.pollAnswerBar').myfun();

您不需要在此处指定每个()函数,请尝试以下操作:

function myfun(){
        var percent = jQuery(this).text();
        console.log(percent);
        drawCounter(percent);
    });
jQuery('.pollAnswerBar').myfun();

您可以按如下方式传递事件处理程序:

// Pass the event handler here
jQuery('.pollAnswerBar').each(drawCounter);
并调用如下函数:

// Declare the event handler with params passed from .each()
function drawCounter(i, elm) {
    var percent = $(elm).text();
    jQuery(elm).html('<div class="percent"></div><div id="slice"' + (percent > 50 ? ' class="gt50"' : '') + '><div class="pie"></div>' + (percent > 50 ? '<div class="pie fill"></div>' : '') + '</div>');
    var deg = 360 * (percent / 100);
    jQuery('#slice .pie', elm).css({
        '-moz-transform': 'rotate(' + deg + 'deg)',
            '-webkit-transform': 'rotate(' + deg + 'deg)',
            '-o-transform': 'rotate(' + deg + 'deg)',
            'transform': 'rotate(' + deg + 'deg)'
    });
    jQuery('.percent', elm).html(Math.round(percent) + '%');
}

演示:

您可以像这样传递事件处理程序:

// Pass the event handler here
jQuery('.pollAnswerBar').each(drawCounter);
并调用如下函数:

// Declare the event handler with params passed from .each()
function drawCounter(i, elm) {
    var percent = $(elm).text();
    jQuery(elm).html('<div class="percent"></div><div id="slice"' + (percent > 50 ? ' class="gt50"' : '') + '><div class="pie"></div>' + (percent > 50 ? '<div class="pie fill"></div>' : '') + '</div>');
    var deg = 360 * (percent / 100);
    jQuery('#slice .pie', elm).css({
        '-moz-transform': 'rotate(' + deg + 'deg)',
            '-webkit-transform': 'rotate(' + deg + 'deg)',
            '-o-transform': 'rotate(' + deg + 'deg)',
            'transform': 'rotate(' + deg + 'deg)'
    });
    jQuery('.percent', elm).html(Math.round(percent) + '%');
}

演示:

就是这样。我的问题是我忘记了每个元素的作用域:)就是这样。我的问题是,我忘记了每个元素的作用域:)对于simplify,它还+1!同时+1表示简化!
// Pass the event handler here
jQuery('.pollAnswerBar').each(drawCounter);

// Declare the event handler using `this`
function drawCounter() {
    var percent = $(this).text();
    jQuery(this).html('<div class="percent"></div><div id="slice"' + (percent > 50 ? ' class="gt50"' : '') + '><div class="pie"></div>' + (percent > 50 ? '<div class="pie fill"></div>' : '') + '</div>');
    var deg = 360 * (percent / 100);
    jQuery('#slice .pie', this).css({
        '-moz-transform': 'rotate(' + deg + 'deg)',
            '-webkit-transform': 'rotate(' + deg + 'deg)',
            '-o-transform': 'rotate(' + deg + 'deg)',
            'transform': 'rotate(' + deg + 'deg)'
    });
    jQuery('.percent', this).html(Math.round(percent) + '%');
}