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