小编Fra*_*ent的帖子

Javascript:使用哪个函数结构

我正在阅读一篇关于Javascript最佳实践的文章,并且对使用哪种函数结构感到困惑...

我想它可能会对变量和函数的范围产生影响,但是你会使用哪种结构(这被认为是最佳实践)?

结构1:使用对象文字.

var obj1 = {
    _myvar : 'myval',

 init: function() {
  this.function1();
  this.function2();
 },

 function1: function() {
  alert('function1');
 },

 function2: function() {
  alert('function2');
 }
};
obj1.init();
Run Code Online (Sandbox Code Playgroud)



结构2:将代码包装在自动执行功能中.

(function(){
 var _myvar = 'myval',

 function1 = function() {
  alert('function1');
 },

 function2 = function() {
  alert('function2');
 },

 init = (function() {
  function1();
  function2();
 }) (); 
}) ();
Run Code Online (Sandbox Code Playgroud)

javascript scripting

5
推荐指数
1
解决办法
165
查看次数

是否有可能改变Yeoman的目录结构?

我喜欢Yeoman的功能,如包管理器(Bower),Livereload集成,指南针等.

因此,我想用它来处理我的公共网站.但是,我不想使用"app"文件夹,而是将所有内容放在根目录下.

我已经更改了grunt配置文件中的引用,但在安装新包和构建时仍然会出错.

是否有可能改变项目结构?

yeoman

5
推荐指数
1
解决办法
1343
查看次数

cd 到 bash 脚本中以波形符 (~) 开头的文件夹名称

我正在尝试创建一个非常简单的 bash 脚本,它执行以下操作:

  • 输入用户进入项目文件夹
  • 设置变量中输入的值
  • cd 到输入的文件夹
  • 删除readme.md文件

根据我所读到的内容,我得出了以下结论:

#!/bin/bash

echo "Enter the project folder path:"
read -e DESTINATION_FOLDER

cd "$DESTINATION_FOLDER"
rm -rf "$DESTINATION_FOLDER/readme.md"
Run Code Online (Sandbox Code Playgroud)

我输入的文件夹路径是

〜/ Dropbox / myproject

我得到的错误是下面的错误。但是该文件夹存在,我可以使用 cd 命令手动访问它。

./cleanup.sh: line 6: cd: ~/Dropbox/myproject/: No such file or directory
Run Code Online (Sandbox Code Playgroud)

谁能指出我做错了什么?

unix macos bash shell

4
推荐指数
1
解决办法
2546
查看次数

转换数据以在导出为CSV之前保留重音

使用PHP,我将查询结果导出为CSV.当数据包含重音时我的问题出现了; 它们未正确导出,我在生成的文件中丢失了所有内容.

我使用该utf8_decode()函数手动转换标题,它工作得很好,但我不知道如何将它用于结果数组.

任何人都可以帮帮我!?

result = db_query($sql);
if (!$result) die('Couldn\'t fetch records');

$fp = fopen('php://output', 'w');
if ($fp && $result) {
 header("Content-type: application/vnd.ms-excel; charset=UTF-8");
 header('Content-Disposition: attachment; filename="adp_enigmes_data.csv"');
 header('Pragma: no-cache');
 header('Expires: 0');
 fputcsv($fp, $headerTitles);

 while ($row = $result->fetch_array(MYSQLI_NUM)) {
     // When I use utf8_decode here, I don't get any results, so I have
        // no idea where to use it!
        fputcsv($fp, utf8_decode(array_values($row)), ',', '"');
 }
 die;
}
Run Code Online (Sandbox Code Playgroud)

php mysql csv character-encoding export-to-excel

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

在显示模块模式中使用自执行匿名函数

只是想知道它是否是一个很好的JavaScript实践.

假设我有许多网页都调用了初始化函数"init()",在我的模式中使用IIFE在每次加载脚本时运行函数是否正确?

var foo = (function() {
    var bar = "something";

    (function init() {
        // Do something crazy that's gonna be the same across all my web pages
        // like adding an event listener or something
        // ...
        document.write('page init...');
    }());

    function privatePage1() {
        // This stuff is gonna be used only in page1.html via foo.privatePage1
        document.write('page 1' + bar);
    }

    function privatePage2() {
        // This stuff is gonna be used only in page2.html via foo.privatePage2
        document.write('page 2' …
Run Code Online (Sandbox Code Playgroud)

javascript design-patterns iife

2
推荐指数
1
解决办法
2765
查看次数

使用YepNope/Modernizr加载外部Google Fonts样式表

我正在尝试使用Modernizr(YepNope)加载动态生成的Google字体样式表,但始终会收到此错误:

未捕获的SyntaxError:意外的标记ILLEGAL(css:1)

我的样式表看起来像这样:

http://fonts.googleapis.com/css?family=Holtwood+One+SC
Run Code Online (Sandbox Code Playgroud)

而我正在通过它来称呼它

Modernizr.load({
    load: ['css!http://fonts.googleapis.com/cssfamily=Holtwood+One+SC|Terminal+Dosis:700'],
    callback: 
        function (url, result, key) {
            console.log('loaded...!');          
        }       
});
Run Code Online (Sandbox Code Playgroud)

该网站说这个,但由于某种原因它只是不起作用.我认为资源被解析为脚本文件,这是导致错误的原因,但似乎无法使其工作=(

"使用css!前缀,您可以将其添加到任何文件名中,并且yepnope会将其视为css文件."

有人取得了类似的成功吗?谢谢!

javascript css asynchronous modernizr yepnope

2
推荐指数
1
解决办法
1580
查看次数

JavaScript模式 - Facade和Object文字模式之间的差异

我想知道这两种模式之间的区别是什么.

我可能会弄错,但他们似乎使用相同的结构来实现更大级别的代码.

门面图案:

var mobileEvent = {
  // ...
  stop: function (e) {
    e.preventDefault();
    e.stopPropagation();
  }
  // ...
};
Run Code Online (Sandbox Code Playgroud)

对象文字:

var myObject = {
    property1:"something",
    property2:"something else",
    method1:function(){
        console.log('hello world');
    }
};
Run Code Online (Sandbox Code Playgroud)

如果它们真的用于不同的目的,我应该何时使用它们?

javascript design-patterns object

2
推荐指数
1
解决办法
996
查看次数

jQuery的remove()绕过FX队列?我如何仅在链的末尾使用它?

我有一个具有此行为的按钮:点击后它会消失; 然后一条小信息淡入几秒钟,淡出并再次出现按钮.

为了显示小消息,我在隐藏按钮后追加了一个元素,但是一旦消失了就需要将它从DOM中删除.但是,只要我在链中使用remove(),元素就会被删除,永远不会出现fadeIn/fadeOut!

// the button is generated dynamically
$('#myButton').live('click', function() {
    $(this)
        .fadeOut() // once clicked, the button disappears

        .after('<small style="display:none;">Dans panier</small>') // append the message after the button

        .next('small').fadeIn() // fade the new small message for a smooth effect

        .delay(1000) // leave it visible for a second...

        .fadeOut() // then fade it out

        .remove() // <-------- normally I would have remove it here from the DOM because it should be hidden, but the remove() method seems to be …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

在jQuery的live事件mouseOver/mouseOut中使用setInterval

大家好!
我试图在用户mouseOver元素时启动一个计时器并在mouseOut上停止它.元素是动态创建的,这是使用live方法的原因.

所以我的计时器正确启动,但我无法阻止它!怎么了?

$elems.live('mouseover mouseout', function(event) {
        var self = $(this), i = 0;

        if (event.type == 'mouseover') {
            var timer = setInterval(function() {
                // change the src of the current element for an element of an array of src, much like in a slideshow
                self.attr('src', tabSrc[i]);
                i === 2 ? i = 0 : i++;
            }, 1000);
        }
        // Handle the mouseOut
        else {
            // stop the timer <------ when I mouseOut the element, this doesn't seems to work... …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

0
推荐指数
1
解决办法
2413
查看次数