小编max*_*son的帖子

Require.js和在DOM中创建<script>元素有什么区别?

使用Require.JS和<script>在DOM中创建元素之间的区别是什么?

我对Require.JS的理解是它提供了加载依赖项的能力,但这不能简单地通过创建一个<script>加载必要的外部JS文件的元素来完成吗?

例如,假设我有函数doStuff(),这需要函数needMe().doStuff()在外部文件中do_stuff.js,而needMe()在外部文件中need_me.js.

这样做Require.JS方式:

define(['need_me'],function(){
    function doStuff(){
        //do some stuff
        needMe();
        //do some more stuff
    }
});
Run Code Online (Sandbox Code Playgroud)

只需创建一个脚本元素即可:

function doStuff(){
    var scriptElement  = document.createElement('script');
    scriptElement.src = 'need_me.js';
    scriptElement.type = 'text/javascript';
    document.getElementsByTagName('head')[0].appendChild(scriptElement);

    //do some stuff
    needMe();
    //do some more stuff
}
Run Code Online (Sandbox Code Playgroud)

这两项都有效.但是,第二个版本不要求我加载所有Require.js库.我真的没有看到任何功能差异......

javascript dynamic-script-loading requirejs js-amd

138
推荐指数
3
解决办法
3万
查看次数

从Chrome/Webkit中的<select>元素中删除圆角

Chrome的用户代理样式表为<select>元素的所有角提供了5px的边框半径.我已经尝试通过外部样式表应用半径为0px来解决这个问题,以及元素本身的内联; 我已经尝试了两种border-radius:0px,-webkit-border-radius:0px;并且我已经尝试了更具体的border-top-left-radius:0px(以及它的-webkit等价物).

没有人工作.

当我在webkit的开发人员工具中检查元素时,Computed Style仍将半径列为5px.但是,如果我单击旁边的展开箭头来查看具体内容,则会显示:element.style - 0px.在下面它显示了我给出的0px的外部css规范,以及5px的用户代理样式表规范.后两者都被划掉了,因为它们应该是.

有任何想法吗?

css select webkit css3

135
推荐指数
5
解决办法
14万
查看次数

将变量从一个php包含文件传递到另一个:global与not

我正在尝试将变量从一个包含文件传递到另一个包含文件.除非我在第二个包含文件中将变量声明为全局变量,否则这不起作用.但是,我不需要在调用第一个include的文件中将其声明为全局.例如:


front.inc:

$name = 'james';
Run Code Online (Sandbox Code Playgroud)

index.php文件:

include('front.inc');
echo $name;
include('end.inc');
Run Code Online (Sandbox Code Playgroud)

输出:詹姆斯


end.inc:

echo $name;
Run Code Online (Sandbox Code Playgroud)

输出:没什么


如果我在end.inc中回显$ name之前声明全局$ name,那么它可以正常工作.这篇文章接受的答案解释了这取决于您的服务器配置:将PHP中的变量从一个文件传递到另一个文件

我正在使用Apache服务器.我如何配置它以便声明$ name是全局的?一个与另一个有优点/缺点吗?

php variables scope global include

69
推荐指数
2
解决办法
17万
查看次数

了解何时以及如何使用Require.JS

我刚刚开始使用Require.JS,我对它应该使用的适当情况以及在这些情况下使用它的正确方法有点不清楚.

以下是我目前使用Require.JS设置的方法.我有两个功能,functionA()functionB().这两个功能都需要额外的功能functionC()才能正常工作.

我只想在必要时加载functionC(),即当要调用functionA()或functionB()时.所以我有以下文件:

functionC.js

functionC(){
  //do stuff
}
Run Code Online (Sandbox Code Playgroud)

functionA.js

functionA(){  
  define(['functionC'],function(){
    //functionC() is loaded because it is listed as a dependency, so we can proceed
    //do some functionA() stuff
  });
}
Run Code Online (Sandbox Code Playgroud)

functionB.js

functionB(){  
  define(['functionC'],function(){
    //functionC() is loaded because it is listed as a dependency, so we can proceed
    //do some functionB() stuff
  });
}
Run Code Online (Sandbox Code Playgroud)

那么,这个设置是否正确?如果我最终在同一页面上同时调用functionA()和functionB(),是否因为它们都加载了functionC.js文件而进行了额外的工作?如果是这样,那是一个问题吗?如果是这样,有没有办法设置它,以便他们首先检查是否已经加载了functionC.js,并且只在尚未加载时加载它?最后,这是否适用于Require.JS?

javascript requirejs

68
推荐指数
2
解决办法
3万
查看次数

更改按键

在输入框或contenteditable = true div中,如何修改字母"a"的按键以返回字母"b"的按键?即,每次在div中键入字母"a"时,输出实际上是字母"b".

我并不关心在IE中运行的解决方案 - 只适用于Safari,Chrome和FF.

在Chrome中,我可以看到按键事件具有属性"charCode","keyCode"和"which",所有这些属性都被分配了按键事件编号.如果我在一个按键触发一个事件,我可以修改这些值,但我无法弄清楚如何返回,使得被输入的实际密钥是不同的.例如:

$(window).keypress(function(e){  //$(window) is a jQuery object
    e.charCode = 102;
    e.which = 102;
    e.keyCode = 102;
    console.log(e);
    return e;
});
Run Code Online (Sandbox Code Playgroud)

我还可以看到,除了charCode,和keyCode之外,还有一个"originalEvent"属性,而这个属性又具有这些属性.但是,我无法修改那些(我试过像e.originalEvent.charCode = 102这样的东西).

javascript jquery events keypress keydown

24
推荐指数
3
解决办法
4万
查看次数

正则表达式匹配以某个字符或空格开头的行,然后是该字符

我正在尝试编写一个正则表达式,匹配以连字符( - )OR开头的行,以空格或制表符开头,然后有一个连字符.所以它应该匹配以下内容:

- hello!
            - hello!
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所得到的:^(\-).但这与上面的第二个例子不匹配,因为它要求第一个字符是连字符.

regex

23
推荐指数
2
解决办法
4万
查看次数

为什么在创建新文件时使用NSFileManager而不是仅使用NSData的writeToFile:atomically:方法?

考虑以下两个代码示例:

    NSData *imgData = UIImagePNGRepresentation(imgFull);
    NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];   
    NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"itemImg_%i.png", timestamp]]; //add our image to the path
    [imgData writeToFile:fullPath atomically:YES];
Run Code Online (Sandbox Code Playgroud)

NSData *imgData = UIImagePNGRepresentation(imgFull);
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];   
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"itemImg_%i.png", timestamp]]; //add our image to the path
NSFileManager *fileManager = [NSFileManager defaultManager];
[fileManager createFileAtPath:fullPath contents:imgData attributes:nil];
Run Code Online (Sandbox Code Playgroud)

第二个示例需要额外的代码行和NSFileManager对象的初始化,而第一个示例只需要NSData对象imgData将自身写入文件.第一个示例的另一个优点是它可以覆盖具有相同名称的预先存在的文件.

我的问题是:在创建新文件时,在什么情况下你真的想要使用NSFileManager及其方法createFileAtPath:contents:attributes:

iphone cocoa-touch objective-c nsfilemanager ios

20
推荐指数
1
解决办法
1万
查看次数

内容列表项中的Flexbox未与列表项的顶部对齐

将flexbox放在列表项中会导致内容被看起来是整行高度推下来.

我一直在玩不同的CSS属性,比如给flexbox margin-top: 0,它的孩子margin-top:0,添加flex-wrap到flexbox等等.没有骰子!

.wrapper {
  display: flex;
}
li {
  background: #ccc;
}
Run Code Online (Sandbox Code Playgroud)
<ul>
  <li>
    <div class="wrapper">
      <div>hello</div>
      <div>world</div>
    </div>
  </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

codepen

html css css3 flexbox

19
推荐指数
2
解决办法
1550
查看次数

如何在Ruby on Rails中创建tinyint(2)或tinyint(3)类型的列?

在Ruby on Rails中,迁移中的以下代码tinyint(4)在MySQL中创建了一个类型列:

create_table :great_table do |t|
    t.integer :step_position, :limit => 1 #tinyint
end
Run Code Online (Sandbox Code Playgroud)

我将如何创建类型的列tinyint(2)tinyint(3)

mysql ruby-on-rails tinyint rails-migrations

12
推荐指数
3
解决办法
1万
查看次数

为什么这个对象属性未定义?

请考虑以下代码.第一个console.log正确记录图像,您可以在下面的图像中看到它的属性.但是,当我尝试将其属性记录到控制台时,我得到了undefined!

console.log(that.data[0].cards); //works -- see image below
console.log(that.data[0].cards.E); //undefined
console.log(that.data[0].cards['E']); //undefined
console.log(that.data[0].cards.hasOwnProperty('E')); //false

var test = JSON.stringify(that.data[0]);
console.log(test); // {}

for( var key in that.data[0].cards ) {
    console.log('hello????') //doesn't appear in the console
}

console.log( Object.keys( that.data[0].cards ) ); //[]
console.log( that.data[0].cards.propertyIsEnumerable("E") ); //false
console.log( that.data[0].cards.__lookupGetter__( "E" ) ); //undefined
Run Code Online (Sandbox Code Playgroud)

控制台中的结果:

在此输入图像描述

知道这里发生了什么吗?该xml内部的财产that.data[0]也应该有它的内部性能-命名一样,其实,在属性cards.

FWIW,我在Firebug中得到了相同的东西(上面的控制台图像是Chrome).

javascript object undefined object-properties

11
推荐指数
2
解决办法
2万
查看次数