Comments (3)
//重置节点个数
setGearTooth: function(data) {
var _self = this;
var item = data || [];
var l = item.length;
if (_self.gearArea==null) { return false;}
var gearChild = _self.gearArea.querySelectorAll(".gear");
var gearVal = gearChild[_self.index].getAttribute('val');
var maxVal = l - 1;
if (gearVal > maxVal) {
gearVal = maxVal;
}
gearChild[_self.index].setAttribute('data-len', l);
if (l > 0) {
var id = item[gearVal][this.keys['id']];
var childData;
switch (_self.type) {
case 1:
childData = item[gearVal].child
break;
case 2:
var nextData= _self.data[_self.index+1]
for (var i in nextData) {
if(i==id){
childData = nextData[i];
break;
}
};
break;
}
var itemStr = "";
for (var i = 0; i < l; i++) {
itemStr += "<div class='tooth' ref='" + item[i][this.keys['id']] + "'>" + item[i][this.keys['name']] + "";
}
gearChild[_self.index].innerHTML = itemStr;
gearChild[_self.index].style["-webkit-transform"] = 'translate3d(0,' + (-gearVal * 2) + 'em,0)';
gearChild[_self.index].setAttribute('top', -gearVal * 2 + 'em');
gearChild[_self.index].setAttribute('val', gearVal);
_self.index++;
if (_self.index > 2) {
_self.index = 0;
return;
}
_self.setGearTooth(childData);
} else {
gearChild[_self.index].innerHTML = "
gearChild[_self.index].setAttribute('val', 0);
if(_self.index==1){
gearChild[2].innerHTML = "";
gearChild[2].setAttribute('val', 0);
}
_self.index = 0;
}
}
加入这行代码可以解决 滚动没有结束就点击取消报错 if (_self.gearArea==null) { return false;}
function gearTouchEnd(e) {
e.preventDefault();
var target = e.target;
while (true) {
if (!target.classList.contains("gear")) {
target = target.parentElement;
} else {
break;
}
}
var flag = (target["new_" + target.id] - target["old_" + target.id]) / (target["n_t_" + target.id] - target["o_t_" + target.id]);
flag = isNaN(flag) ? 0.001 : flag;
if (Math.abs(flag) <= 0.2) {
target["spd_" + target.id] = (flag < 0 ? -0.08 : 0.08);
} else {
if (Math.abs(flag) <= 0.5) {
target["spd_" + target.id] = (flag < 0 ? -0.16 : 0.16);
} else {
target["spd_" + target.id] = flag / 2;
}
}
if (!target["pos_" + target.id]) {
target["pos_" + target.id] = 0;
}
rollGear(target);
}
加入这行语句可以解决点击元素报错flag = isNaN(flag) ? 0.001 : flag;
from larea.
在170行添加上这个判断就能解决点击报错
if(isNaN(flag)){
return ;
}
from larea.
2.1 close作如下修改
close: function(e) {
e.preventDefault();
var _self = this;
var evt = new CustomEvent('input');
_self.trigger.dispatchEvent(evt);
// document.body.removeChild(_self.gearArea);
// _self.gearArea=null;
_self.gearArea.style.display="none";
}
2.2 popupArea加如下内容
function popupArea(e) {
if(_self.gearArea) {
_self.gearArea.style.display="block";
return;
}
.....原来的代码
}
解决滑动未结束持续报错问题,也避免每次都创建dom节点
from larea.
Related Issues (20)
- 如何获取选中的值
- Uncaught TypeError: Cannot read property 'nodeType' of undefined
- 样式我需要自己修改,但是修改完之后,省市区的位置都对不上了
- 滑动时点击确定报错
- 在个别手机上的省市区的排列乱了的问题
- 如何在更改样式行高后,滑动的结束后能够停留在一行?
- 用commonjs写法怎么模块的导出呢?
- ios下第二次点击input触发失败 HOT 1
- 大神本人小鸟一只 妄图修改三级为二级屡屡碰壁还请指点!!!!急得一匹!!!
- android部分机型不能滑动huawei6,vivo Y67是什么原因 HOT 1
- 这个是必须三级,如果是二级,或是一级怎么办呢? HOT 1
- 能不能直接遍历后台传回来的数据 HOT 2
- Uncaught TypeError: Cannot read property 'querySelectorAll' of null at MobileArea.setGearTooth (LArea.js:278)
- 移动端触发不了,PC完全没问题。急,大神求解答啊
- 当我选择地址的时候点击下面的地址会有一个报错,导致页面 HOT 2
- 手机端调不起来啊?支持手机吗
- 性能问题
- 不支持点击事件 HOT 1
- 移动端呼出时会出现按键的情况
- 无限循环报错
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from larea.