V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  autoxbc  ›  全部回复第 139 页 / 共 147 页
回复总数  2934
1 ... 131  132  133  134  135  136  137  138  139  140 ... 147  
2017-09-06 16:57:14 +08:00
回复了 Vkin 创建的主题 JavaScript 如何用 js 实现抽奖页面的二次点击(关闭抽奖失败的提醒)?
js 是事件驱动的,基本思路是把所有的操作都和事件关联起来
比如点击关闭按钮的代码,应该挂在按钮出现的事件上

怎么判断按钮出现,可以用突变观察者
http://javascript.ruanyifeng.com/dom/mutationobserver.html
https://developer.mozilla.org/zh-CN/docs/Web/API/MutationObserver

如果觉得观察者比较复杂,可以用事件监听
http://javascript.ruanyifeng.com/dom/event.html

一个元素出现,一般会伴随节点插入事件 DOMNodeInserted
如果是修改现有元素,会伴随属性修改事件 DOMAttrModified

如果不想深入学习,那就用上面的延时吧,不过延时是不可靠的
2017-09-05 19:14:18 +08:00
回复了 wyattluo 创建的主题 路由器 求推荐路由器, 30 人左右 PPPoE 拨号
30 人的规模,没有合适的 QoS 会出问题

爬爬帖看看 ROS,爱快,石像鬼,磊科喜欢哪种
考虑 $$ 的话,石像鬼不错,OpenWrt 的衍生
2017-09-05 15:38:16 +08:00
回复了 dante3imin 创建的主题 PHP 正则替换 ,不替换 a 标签内的字符
我一直觉得用正则处理 html 是有问题的

html 是结构化的数据,要想代码写的简洁有语义而健壮
先解析成结构数据,再用 XPath 和 CSS Selectors 最好

就像上面说的,强行用正则处理结构化的数据
必然不自觉的在正则里自己实现了 html parser
2017-09-05 01:09:46 +08:00
回复了 Vkin 创建的主题 JavaScript 移动网页如何查看按钮的 id 以及绑定的事件?
用框架开发的页面
点击事件经常被委托给上层处理

然后元素本身的 onclick 其实没有东西
模拟点击要用 target.click()

按钮 id 不知道是什么
获取元素的各种属性和普通页面没区别

如果可能的话,模拟 get 和 post 效率更高
他那个表述模糊不清,感觉也不专业
2017-09-04 00:28:27 +08:00
回复了 LetFoxRun 创建的主题 硬件 求帮忙推荐个显示器吧,谢谢
买 31 寸吧,显示器就没有够大一说,只有桌子能不能放下
@wangtuyi #8 如果你们说的是域名匹配的话,我猜两种方法都有问题,不用 Public Suffix List 是无法解决的。

https://www.zhihu.com/question/20994750
2017-09-03 20:40:04 +08:00
回复了 iyg429 创建的主题 问与答 联通 3g 比 4g。稳定?
北京联通也是,有时 4G 好用,有时 3G 好用

感觉手机系统应该维护一个信号动态评级,并自动切换
现在要用户自己切,一点也不智能,妄称智能手机
2017-09-03 13:41:59 +08:00
回复了 wonpn 创建的主题 问与答 5G WiFi 下手机待机耗电量太高,远大于 2.4G?
可能墙太厚,手机回传困难
2017-09-02 20:39:20 +08:00
回复了 guofs 创建的主题 问与答 有没有过滤掉京东配送的 chrome 插件或油猴脚本?
提供个思路,非自营的 sku 至少 10 位起

我这里只有伪代码,不能运行,可以参考一下

[
  [ 'wtype=1' , 'li.gl-item[data-sku]' , 0 ],
  [ 'delivery=1' , 'div.j-sku-item[data-sku]' , 1 ]
].forEach(function(arr){
   if( location.href.indexOf( arr[0] )+1 )
  {
     doc.picks(arr[1]).forEach(function(e){
       if( e.getAttribute('data-sku').match(/\d{10,}/) )
         getParent( e , null , arr[2] ).remove();
    });
  }
});
2017-09-02 18:45:44 +08:00
回复了 xiaotianhaha 创建的主题 前端开发 新手求教, js 懒加载的问题
V2 真是流行一句话回复,也不管别人能不能看懂

本质上说题主获取视口高度的代码不准确
var seeheight = document.documentElement.clientHeight ;

应该这么写
var seeheight = window.innerHeight ;

这里涉及一些历史遗留的兼容性问题

不声明 DOCTYPE,浏览器按照旧的怪异模式渲染,获取视口要用
document.body.clientHeight

声明了 <!DOCTYPE html>,浏览器按照标准模式渲染,获取视口要用
document.documentElement.clientHeight

题主没有声明 DOCTYPE,却按照标准模式获取,得到的值是不对的

现代浏览器用新的接口获取视口,上面两种都过时了,用这个
window.innerHeight

这里有一些简单的介绍,可以参考一下
http://bazhuang.iteye.com/blog/555932

说点不相关的,懒加载是否有必要,我持保留意见
我自学前端的起因就是去掉网站的懒加载和自动播放
2017-09-02 02:43:49 +08:00
回复了 tscat 创建的主题 分享发现 为了撸个行李箱办了广发的信用卡,发现网上评价很差
广发溢缴金全国任意 ATM 取出不收手续费
配合支付宝还款立即到帐,出差利器
2017-09-01 14:53:05 +08:00
回复了 twogoods 创建的主题 程序员 关于异步编程
异步并不是一种处理问题的技巧或者方法
而是一种对流程的更高层面的抽象

世界模型本质是异步的

描述世界的语言与这个模型越接近
就越精确自然高效
2017-09-01 14:21:46 +08:00
回复了 permaylau 创建的主题 问与答 李笑来的 ICO 项目 PressOne 怎么感觉像忽悠圈钱呢?
中国就是中心化的国,去中心化有原罪,宇宙真理不会同意的
2017-09-01 11:04:10 +08:00
回复了 stillsilly 创建的主题 Android 预算一千给老人家用,买小米还是华为?
已给家里买了 4 台红米,质量是靠得住的
2017-08-31 23:52:37 +08:00
回复了 ivmm 创建的主题 问与答 5GB 的 720P 和 4GB 的 1080P 那个更清晰?
就像摄影中 光圈,快门,感光度 相互制约
视频编码的 分辨率,帧率,码率 也互相制约

不能简单的说清晰度,因为人的观感是复杂系统

5G 720P 的文件,分辨率低,码率高,运动图像会更流畅
4G 1080P 的文件,分辨率高,码率低,缓动图像会更清晰

技术和器材永远不能达到完美,需要使用者自己取舍
2017-08-30 23:24:06 +08:00
回复了 yantianqi 创建的主题 程序员 js replace 的用法
尽管这个变量名取的符合语义,整体代码却不够好

比如替换函数用了两个参数是多余的,用一个就可以了
比如再赋值 b 没有意义
比如后面的映射结构过于复杂

function nihaoa(b,index){
   return b.replace( /@|!|!/g , function($0) {
     return ( $0 == '@' && index < 9 ? '0' + index : index ) + 1 ;
  });
}
2017-08-30 19:47:13 +08:00
回复了 yantianqi 创建的主题 程序员 js replace 的用法
假设题主知道 replace 的常规用法
也知道第二个参数可以是一个函数
也知道正则中的 $1 $2 ... $9 表示捕获组

这个 $0 $1 没有任何实际意义,就是 function 的第一个形参名,第二个形参名
这里用 function(a,b) 代替没有任何区别

参考 MDN 中 replace 的说明
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/replace

第一个参数表示整体匹配字符串,也就是正则中的 $&
第二个参数是第一个捕获组,也就是 $1

这里代码的编写者用 $0 $1 作为变量名,来对应 $& $1
可以理解为一种语义上的强迫症
如果不是 $& 是非法的变量名,他一定会用 function( $& , $1 )

第二个 return 后面是一个映射结构,拆开写就好理解了
var ys = { '我':'me' , '你':'you' };
ys['你'];
// "you"

合起来是这样
{ '我':'me' , '你':'you' }['你']

对于三种被替换的字符 @ ! !,代码编写者希望有三种替换操作
将捕获组输入映射,得到三种对 index 的补全,用来替换三种字符
2017-08-30 12:32:51 +08:00
回复了 yantianqi 创建的主题 程序员 js 验证是否是对象
这代码是有问题的,至少需要设定一个前提

一般不简单的说一个东西是否是对象,因为 js 里万物皆对象
最好说,基本类型,基本包装类型,引用类型

取决于你怎么看基本包装类型
typeof 可能并不可靠

typeof 123
// "number"
typeof new Number(123)
// "object"

框架里一般会用这个方法判断

Object.prototype.toString.call(123)
// "[object Number]"
Object.prototype.toString.call(new Number(123))
// "[object Number]"
2017-08-28 20:12:20 +08:00
回复了 qq12345454 创建的主题 问与答 关于 Airbnb JavaScript 编码规范中有个地方不解
@FrankFang128 #13

显然不仅仅是 if

函数声明既会提升又不遵守控制流
就是代码中的野蛮人+特权阶级

console.log( func() );

function func()
{
return 1;
}

for(var i=0;i>1;i++)
{
function func()
{
return 2;
}
}
1 ... 131  132  133  134  135  136  137  138  139  140 ... 147  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3399 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 51ms · UTC 11:53 · PVG 19:53 · LAX 04:53 · JFK 07:53
Developed with CodeLauncher
♥ Do have faith in what you're doing.