小编Jos*_*ber的帖子

为什么要将空对象传递给jQuery的extend方法?

jQuery有一个非常简洁的extend方法,它将2个对象合并为一个.

jQuery插件创作页面上,他们展示了一个示例如下:

var settings = $.extend({
    'location'         : 'top',
    'background-color' : 'blue'
}, options);
Run Code Online (Sandbox Code Playgroud)

但是,我已经看到很多插件将一个空对象作为第一个参数传递,如下所示:

var settings = $.extend({}, {
    'location'         : 'top',
    'background-color' : 'blue'
}, options);
Run Code Online (Sandbox Code Playgroud)

据我所知,这两个完全相同.唯一的区别是,如果defaults将存储在自己的变量中:

var defaults = {
    'location'         : 'top',
    'background-color' : 'blue'
},
settings = $.extend({}, defaults, options);
Run Code Online (Sandbox Code Playgroud)

这样,您始终可以访问您的默认值,而不会被它们覆盖options.


这是一个问题:为什么这么多插件作者选择将空对象传递给它extend,即使它们没有将默认值存储在变量中?

我错过了什么吗?

javascript jquery object

14
推荐指数
2
解决办法
3895
查看次数

在悬停时仅更改多个背景中的一个

标题基本上都说明了一切.


这是一个例子:

#element {
    background: url(image.png) no-repeat center center,
                linear-gradient(to top, #86a53c, #516520);
}

#element:hover {
    background: url(image.png) no-repeat center center,
                linear-gradient(to top, #A0C153, #516520);
}

#element:active {
    background: url(image.png) no-repeat center center,
                linear-gradient(to top, #516520, #A0C153);
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,只有一个背景图像发生了变化 - 另一个背景图像在每个状态中保持不变,但仍然被声明了四次!

那么,是否可以只更改其中一个背景,但保留另一个背景 - 无需一遍又一遍地重新声明它?

我知道其他CSS背景属性(重复,位置等)可以单独设置.这只是一个简单的例子......

css background css3

14
推荐指数
2
解决办法
2347
查看次数

Laravel 4 - Route :: resource vs Route :: controller.哪个用?

我知道资源控制器可以有以下方法

index
show
create
edit
store
update
destroy
Run Code Online (Sandbox Code Playgroud)

现在假设除了资源操作之外,我还需要执行以下操作:

  • 用户尝试登录.
  • 管理员希望通过电子邮件/名字找到用户
  • 用户通过它的slug请求发布帖子

资源控制器对上述功能无用吗?如果编程API,我显然想要索引,显示,编辑,创建,销毁......还有登录,查找,搜索等...

是否可以路由到两种类型的控制器?例如

Route::group(['prefix' => 'api'], function() {
    Route::group(['prefix' => 'v1'], function() {
        // Resource Controller
        Route::resource('posts', 'Api\V1\PostsResourceController');

        // Restful Controller
        Route::controller('posts', 'Api\V1\PostsController');
    });
});
Run Code Online (Sandbox Code Playgroud)

或者我应该忘记资源控制器并使用一个宁静的控制器?

php routing laravel laravel-4

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

Firefox中没有定义JavaScript函数?

我目前正在Firefox中调试我的网站的下一层,并在我的JavaScript中发现了一个非常奇怪的错误.在Firefox中,是否需要在引用这些函数的任何代码行之上定义函数?这对我来说真的很奇怪.

这是导致错误的简化版本:

var myClass = new MyClass(myCallback);

function myCallback() {
    // code
}
Run Code Online (Sandbox Code Playgroud)

它抛出了以下错误: Error: myCallback is not defined

这就是我需要做的才能在Firefox中工作:

var myCallback = function() {
    // code
}

var myClass = new MyClass(myCallback);
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:这是正常行为还是其他事情发生了?我的意思是,在将来编码时我是否需要考虑这一点?

javascript debugging error-handling firefox

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

为什么IE不用流体图像子对象表宽度

请考虑以下代码:

HTML:

<table>
    <tr>
       <td><img src="http://watduck.jpg.to" /></td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

CSS:

table { width: 10% }
img { max-width: 100% }
Run Code Online (Sandbox Code Playgroud)

图像显然应该是窗口宽度的十分之一,这正是除了IE之外的每个浏览器中的图像,它只是回落到原始大小.

但是,考虑一下:

HTML:

<div><img src="http://watduck.jpg.to" /></div>
Run Code Online (Sandbox Code Playgroud)

CSS:

div { width: 10% }
img { max-width: 100% }
Run Code Online (Sandbox Code Playgroud)

IE确实正确,并显示在窗口宽度的第10位.


所以,这里有一个问题:是什么导致了这种行为,以及可以采取什么措施来强制IE遵守表格的宽度?

在IE8和IE9中测试过(不关心IE7及以下版本).

html css internet-explorer html-table fluid-layout

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

如何在Laravel的Eloquent ORM中通过数据透视表数据进行排序

在我的数据库中,我有:

  • tops
  • posts
  • tops_has_posts 表.

当我在tops桌子上检索顶部时,我还检索了posts与顶部有关的内容.但是,如果我想按特定顺序检索这些帖子怎么办?所以我range在我的数据透视表中添加一个字段,我tops_has_posts尝试使用Eloquent按结果排序,但它不起作用.

我试试这个:

$top->articles()->whereHas('articles', function($q) {
    $q->orderBy('range', 'ASC');
})->get()->toArray();
Run Code Online (Sandbox Code Playgroud)

还有这个 :

$top->articles()->orderBy('range', 'ASC')->get()->toArray();
Run Code Online (Sandbox Code Playgroud)

两人都是绝望的尝试.

先感谢您.

php mysql laravel eloquent

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

CKEditor - 删除DOM节点时销毁实例

通过CKEditor文档阅读,我看到他们可以选择销毁实例CKEDITOR.instances.instanceName.destroy();.但是,如果DOM已更改,并且已删除整个WYSIWYG DOM结构,则Chrome中会出现以下错误:

Uncaught TypeError: Cannot read property 'document' of null
Run Code Online (Sandbox Code Playgroud)

...以及Firefox中的以下内容:

i.contentWindow is null
Run Code Online (Sandbox Code Playgroud)

有什么方法可以解决这个问题吗?

由于我的应用程序的结构方式(通过AJAX加载内容),.destroy()当元素仍在页面上时,我无法调用.

javascript ajax wysiwyg ckeditor

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

从模型中删除项目时,表单验证未更新.错误?

我最近开始使用AngularJS,我想我遇到了一个奇怪的错误.


首先,这里有一些工作代码:

视图:

<body ng-controller="MainCtrl">

    <form name="form">

        <div ng-repeat="phone in phoneNumbers">
            <input ng-model="phone.number" required />
            <button ng-click="deleteNumber($index)">Delete Number</button>
        </div>

        <button ng-click="addNumber()">Add Number</button>

        <input type="submit" ng-disabled="form.$invalid" />

    </form>

</body>
Run Code Online (Sandbox Code Playgroud)

控制器:

app.controller('MainCtrl', function ( $scope ) {

    $scope.phoneNumbers = [{
        number: '212-123-4567'
    }];

    $scope.addNumber = function () {
        $scope.phoneNumbers.push({
            number: ''
        });
    };

    $scope.deleteNumber = function ( index ) {
        $scope.phoneNumbers.splice(index, 1);
    };

});
Run Code Online (Sandbox Code Playgroud)

这是Plunkr:工作示例.

我认为代码非常简单:ng-repeat显示每个电话号码,您可以编辑/删除.如果添加了电话号码,则不能为空; 如果有空电话号码,将禁用提交按钮.


当提交按钮位于上方时,会出现问题ng-repeat.如果您添加电话号码,将其留空,然后将其删除,则提交按钮将保持禁用状态:

<body ng-controller="MainCtrl">

    <form name="form">

        <input type="submit" …
Run Code Online (Sandbox Code Playgroud)

html javascript validation angularjs

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

在Laravel 5中使用HTML和表单助手

从Laravel 5中Laravel 4的照明中,使用HTML和FORM类的正确方法是什么?

在Laravel 4中,我可以这样使用:

{{ Form::open(array('url' => 'foo/bar')) }}
    // Anything
{{ Form::close() }}
Run Code Online (Sandbox Code Playgroud)

我可以添加如下输入:

{{ Form::text('username'); }}
{{ Form::text('email', 'example@gmail.com'); }}
{{ Form::password('password'); }}
{{ Form::email($name, $value = null, $attributes = array()); }}
{{ Form::file($name, $attributes = array()); }}
Run Code Online (Sandbox Code Playgroud)

我怎么能在Laravel 5中做同样的事情?

php laravel

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

Laravel where()vs whereLoose()方法

Laravel wherewhereLoose方法有什么区别?

文件说:

where():

where方法在检查项目值时使用严格比较.使用whereLoose方法使用"松散"比较进行过滤.

whereLoose():

该方法与where方法具有相同的签名; 但是,所有值都使用"松散"比较进行比较.

在这种情况下,"松散比较"是什么意思?

laravel laravel-5.1

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