我正在使用Ajax为我的网站构建一个简单的支持聊天.我想检查我当前正在聊天的用户是否离开了浏览器.
目前,我通过在客户端设置间隔功能来创建具有名称的文件,从而构建该功能: userId.txt
在管理区域中,我创建了一个检查是否userId.txt存在的区间函数.如果存在,则删除它.如果自定义间隔函数没有重新创建文件 - 下次admin函数将发现该文件不存在时,它会将customer标记userId为非活动状态.
抽象表示:
customer -> interval Ajax function -> php [if no file - create a new file]
admin -> interval Ajax function -> php [if file exists - delete the file] -> return state to Ajax function and do something
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更好的方法来实现您能想到的这个功能?
我正在尝试编写将接受以下电话号码格式的表达式:
508 736 756
505050505
+48 505 505 505
(+48) 505 505 505
++48 505 505 505
(++48) 505 505 505
(23)692 36 99
23 692 36 99
Run Code Online (Sandbox Code Playgroud)
我写了下面的表达式
^(([+]{0,2}?)?([+]{0,2}?)?([0-9 ]+)?)$
Run Code Online (Sandbox Code Playgroud)
但是,此表达式仅涵盖下面列出的格式:
508 736 756
505050505
+48 505 505 505
++48 505 505 505
23 692 36 99
Run Code Online (Sandbox Code Playgroud)
转义括号字符时出现问题:().这就是我无法涵盖以下格式的原因:
(+48) 505 505 505
(++48) 505 505 505
(23)692 36 99
Run Code Online (Sandbox Code Playgroud)
我尝试用反斜杠逃避它们,但由于某种原因它不起作用.
... [(] [+] {0,2} [)]?...
如何在sublime文本3中复制当前打开的文件的文件名?如果默认情况下这是不可能的,也许你知道一些使用键盘快捷键完成该工作的sublime扩展.
鉴于我的UsersTableSeeder.php课程,我正在使用循环为我的数据库植入假数据:
$numberOfUsers = 150;
DB::table('users')->delete();
$faker = Faker::create();
for ($i = 1; $i <= $numberOfUsers; $i++) {
DB::table('users')->insert([
'id' => $i,
'firstName' => $faker->firstName,
'lastName' => $faker->lastName,
'email' => $faker->email,
'password' => bcrypt("123"),
'created_at' => Carbon::now()->addDays((-5 * $i) - 2)->format('Y-m-d H:i:s'),
'updated_at' => Carbon::now()->addDays(-5 * $i)->format('Y-m-d H:i:s'),
]);
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是,当我的日期时间值生成时,它有可能落在 DST 区域中,例如在 2017-03-12 02:00:00 和 2017-03-12 02:59:59 之间(确实发生),它给了我以下错误:
[PDOException]
SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '2016-03-13 02:08:11' for column 'created_at' at row 1
Run Code Online (Sandbox Code Playgroud)
现在我明白我不能把这样的值放在我的数据库中,因为我的数据库足够聪明,知道这个时间区域并没有完全退出。但是有什么办法可以让 Carbon 足够聪明以考虑 …
我的问题很简单,我有一个<Tooltip>组件围绕着一个<Select>组件,当我单击“选择”时,工具提示会显示在菜单项上,如下所示:
正常行为:
不那么正常的行为:
因此,我保留了 Material-UI 和工具提示的所有默认值:zIndex: 1500但据我所知,MenuItem 没有默认值。我尝试将 MenuItem 的 zIndex 设置为 1501,但它仍然具有相同的行为。
我想知道将工具提示留在 MenuItem 后面的干净方法是什么,如果不可能,则在打开 Select MenuItems 时隐藏工具提示...
我的代码如下所示:
<Tooltip title={'Filter by status'}>
<Select value={this.state.status} onChange={this.handleChange.bind(this, Filter.Status)}>
{statuses.sort(this.filterItemSortFn).map(item => {
return (<MenuItem style={{zIndex: 1501}} value={item}>{item}</MenuItem>);
})}
</Select>
</Tooltip>
Run Code Online (Sandbox Code Playgroud)
如果我将工具提示的 zIndex 设置为较小的值,它会隐藏在 menuItems 后面,但我真的不想使用默认值,因为它也会干扰其他 zIndex 值。
我做了一个CodeSandbox:https ://codesandbox.io/s/rn68z4xlo
我知道shift key代码是16,enter key代码是13.
//@ catching any 'enter' keypress in textarea.
function textareaOnEnter(){
$('textarea#someId').keypress(function(e)
{
if(e.which == 13)
{
//.. works only for 'enter'
}
});
}
Run Code Online (Sandbox Code Playgroud)
我认为它可以像这样简单:
function textareaOnShiftAndEnter(){
$('textarea#someId').keypress(function(e)
{
if(e.which == 13 && e.which == 16)
{
//.. don't work for nothing
}
});
}
Run Code Online (Sandbox Code Playgroud)
但当然它根本无法正常工作.如何检查shift + enter按键?
正在使用Material-UI的beta版本来实现长期愿景如果测试版功能是必需的,那么使用大量内容的React Web应用程序是一个好主意,并且使用遵循Google的Material Design Guidelines的UI库是必需的.
我看了React-Toolbox,MUI和Material Design Lite之类的替代品,它们接近我们需要的东西,但是像Material-UI那样大而且受欢迎的产品会更好,这就是我犹豫的原因.
我一直在寻找使用测试版的风险,并看了看材料,UI的V1.0.0-betaXX版本的22预发行票据,它似乎并没有被那个坏,但也许
我可以使用稳定版本v0.20.0并尝试找到一种方法来添加我需要的功能(flex网格就是其中之一)并最终将迁移到更新版本的Material-UI(其中还包括从反应中迁移) v15对v16做出反应,因为Material-UI v1.0.0只会暂时支持React v15).
我可以使用测试版v1.0.0-beta.22并解决错误(如果/当我遇到它们时,如果有的话),逐渐迁移到React v16并最终迁移到Material-UI v1的发布版本. 0.0.
无论哪种方式,我认为从v1版本迁移到v1版本比从0.20.0迁移到1.0.0要容易得多,不是吗?但是,与此同时,测试版是测试版,所以它不是最终产品,我不保证任何东西.
我正在使用Material-UI的Select组件,并在其周围带有工具提示,如下所示:
<Tooltip title="Tooltip Test">
<Select value={this.state.age} onChange={this.handleChange}
inputProps={{ name: "age", id: "age-simple" }}
>
<MenuItem value="">
<em>None</em>
</MenuItem>
<MenuItem value={10}>Ten</MenuItem>
<MenuItem value={20}>...</MenuItem>
</Select>
</Tooltip>
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我单击“选择”组件时,在使用“选择”期间,甚至在选择一个项目之后,工具提示仍会显示。
我希望它在单击“选择”后立即消失,这样它就不会停留在MenuItems上(更改zIndex不是我想要的解决方案),即使在菜单中选择一个项目之后,它也仍然不会显示。
我用一个简单的问题做了一个codeandbox:https ://codesandbox.io/s/yvloqr5qoj
但是我正在使用打字稿,这是我正在使用的实际代码:
import * as React from 'react';
import PropTypes from 'prop-types';
import withStyles, { WithStyles } from 'material-ui/styles/withStyles';
import { Tooltip } from 'material-ui';
const styles = {
}
type State = {
open: boolean,
};
type Props = {
id: string,
msg: string,
children: PropTypes.node,
};
class ControlledTooltip extends …Run Code Online (Sandbox Code Playgroud) javascript ×3
material-ui ×3
php ×3
reactjs ×3
ajax ×1
beta ×1
brackets ×1
css ×1
enter ×1
escaping ×1
frontend ×1
jquery ×1
keypress ×1
laravel ×1
preg-match ×1
regex ×1
session ×1
shift ×1
sublimetext ×1
sublimetext3 ×1
timezone ×1