小编Cod*_*oso的帖子

通过屏幕分辨率检测移动设备的可靠性如何?

这听起来有点太好了,所以请告诉我它是不是真的.

如果我只有一个版本的移动网站(不同设备没有变化,只有一个网站适用于所有手机),通过屏幕分辨率检测移动设备的可靠性如何?

如果屏幕分辨率小于400px,则只需提供移动版本.

注意:我的问题假设启用了javascript.此外,我知道有用户代理检测,但我想没有它.

javascript mobile mobile-phones mobile-website

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

PHP中UPDATE准备语句的问题

我有UPDATE预处理语句的问题,到处查找,浏览这里的问题,语法似乎是正确的,我错过了什么?

$update_page = $db->stmt_init();
$update_page = $db->prepare ("
UPDATE pages 
SET page_title = ?, meta_description = ?, meta_keywords = ?, $content = ? 
WHERE page_uri = ?
");
$update_page->bind_param('sssss', $page_title, $meta_description, $meta_keywords, $content, $page_uri);
$update_page->execute();
Run Code Online (Sandbox Code Playgroud)

这引起了我的兴趣

致命错误:在非对象上调用成员函数bind_param()

参考第4行(最后一行之上).

@Gaurav:这是完整的代码 - 我在这个页面上有SELECT和UPDATE语句,SELECT工作:

if (!isset($page_uri))
    {
    $page_uri = 'home'; 
    }

if (isset($_POST['update']))
    {
    $page_title = htmlspecialchars($_POST['page_title']);
    $meta_description = htmlspecialchars($_POST['meta_description']);
    $meta_keywords = htmlspecialchars($_POST['meta_keywords']);
    $content = htmlspecialchars($_POST['content']);

    $update_page = $db->stmt_init();
    $update_page->prepare ("
    UPDATE pages 
    SET page_title = ?, meta_description = ?, meta_keywords = ?, …
Run Code Online (Sandbox Code Playgroud)

php mysql prepared-statement

5
推荐指数
0
解决办法
5484
查看次数

有没有办法(JavaScript或jQuery)顺序加载图像(防止并行下载)

我有一个页面,其中包含十几个大图像:

<div id="gallery">
  <img src="1.png" alt="" />
  <img src="2.png" alt="" />
  ...
</div>
Run Code Online (Sandbox Code Playgroud)

由于图像的大小,并行下载会在任何显示之前导致太长的延迟.

问题:如何按顺序加载图像,以便2.png1.png在完全加载和显示后才开始加载?

  • 我不想延迟加载(除非你知道一个插件,它总是严格按照相同的顺序加载图像,不管当前的视口)

  • 此解决方案:在最新的Chrome,Firefox,IE中,按顺序加载图像对我不起作用.它将立即加载所有图像,然后显示它们

  • 在这个答案中建议的插件/sf/answers/1804203341/有点功能,但它一次发出2,3或更多的请求,所以不做它应该做的事情

  • 然后是这个插件,也在一些答案中提出:http://imagesloaded.desandro.com/ 它的意思是其他东西 - 让你知道什么时候加载所有图像,它做得很好.所以我试着像这样使用它:

    var $ gallery = $("#gallery");
    $ gallery.imagesLoaded(function(){$ gallery.append(''); console.log("Image loaded");}); $ gallery.append( '');

这里的想法是 - 在imagesLoaded事件上逐个动态添加图像.但是,它仅针对第一个图像触发(尽管它也是动态添加的),而第二个图像则不会触发.因此上面的代码会导致两个图像显示,但只有1个console.log()通知

任何建议赞赏.

javascript jquery image image-loading

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

jQuery Draggable包含问题,无法拖动父div之外的元素

我有一个非常简单的图像管理器,如下所示:

<div id="container">

    <div id="draggable-images">
        <img class="images" src="image1.jpg" />
        <img class="images" src="image2.jpg" />
        <img class="images" src="image3.jpg" />
    </div>

    <div id="droppable-area>
    </div>

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

和jQuery一起去:

        $( ".images" ).draggable({ containment: "#container" });
        $( "#droppable-area" ).droppable();
Run Code Online (Sandbox Code Playgroud)

这是CSS:

#draggable-images {
    overflow:scroll;
    overflow-x:hidden;
}

.images {
    z-index:10000;
}
Run Code Online (Sandbox Code Playgroud)

图像是可拖动的,但无论设置什么包含(甚至尝试将其设置为窗口),它们都不会从其父div中出来.

有谁知道如何使它工作,或为什么它不起作用?

我已将z-index设置为高,以确保不是问题.我也试过#draggable-images没有滚动条制作div,它也没用.

似乎在jQuery的网站上像魅力一样工作,无法想象我错过了什么.

jquery jquery-ui-draggable jquery-ui-droppable

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

AngularJS + IndexedDB,为所有控制器打开一次数据库,或者为每个请求单独打开它?

在AngularJS中使用IndexedDB时,我遇到了这个困境,如标题所述,并且不确定什么是正确的方法.

  1. 在许多教程中,数据库被打开一次,就是这样,所有方法都使用那个连接.

  2. 在一个AngularJS特定示例中,数据库打开请求以及所有CRUD方法都包含在工厂中,控制器一加载就调用open方法,所有CRUD方法都在这个控制器中.

  3. 我知道保持控制器纤薄是一种很好的做法,使它们更容易重复使用.所以,我为每个CRUD方法都有单独的控制器,这意味着我需要单独调用为每个请求打开数据库,如下所示:

    websiteService.openDatabase().then(function() {
        websiteService.addWebsite($scope.website.url, $scope.website.color).then(function() {
    
        }, function(err) {
            console.log(err);
        });     
    }); 
    
    Run Code Online (Sandbox Code Playgroud)

所以,每次我想addWebsite,我先openDatabase等待承诺解决.

websiteService 是一个工厂,其中使用IndexedDB的所有方法

这里的最佳做法是什么?如果有另一种方式,这里没有提到,请提及它.

如果有帮助,这是完整的控制器代码:

app.controller('AddWebsiteCtrl', ['$scope', '$location', '$routeParams', 'websiteService', function($scope, $location, $routeParams, websiteService) {
    $scope.save = function() {
        websiteService.openDatabase().then(function() {
            websiteService.addWebsite($scope.website.url, $scope.website.color).then(function() {

            }, function(err) {
                console.log(err);
            });     
        });     
        $location.path('/overview');
    };

    $scope.cancel = function() {
        $location.path('/overview');
    };  
}]);
Run Code Online (Sandbox Code Playgroud)

javascript indexeddb angularjs

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

HTML - 启用 CSS 时无法在 textarea 内移动光标

我有一个超级简单的 HTML 表单:

<form name="editor" action="#" method="POST">
    <textarea name="contents" cols="100" rows="50"><?php echo $text; ?></textarea>
    <br>
    <input type="submit" name="submit" value="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

里面回显的文本是 HTML 代码。

现在,当 CSS 关闭时,它可以完美运行。

但是当它打开时,我:

  • 无法单击 textarea 文本内的任何位置将光标放在那里
  • 不能用箭头键移动光标,它只会左右移动几个字符,如果按下向上/向下箭头,它会将光标移动到文本区域的最顶部/最底部。

我试过什么:

  • 从 CSS firebug 中排除 textarea 显示应用到它
  • 尝试使用或不使用 JS 来检查这是否有所不同
  • 尝试了不同的浏览器,同样的问题重复出现
  • 完全关闭 CSS 然后它可以工作,但这不是一个选项

我唯一的想法是 textarea 可能从某个地方继承了一些 CSS,但是什么样的 CSS 会导致这种行为,要寻找什么?

这是firebug看到的CSS:

textarea {
    overflow: auto;
    resize: vertical;
    vertical-align: top;
}
button, input, select, textarea {
    font-size: 100%;
    margin: 0;
}
html, button, input, select, textarea {
    color: #222222; …
Run Code Online (Sandbox Code Playgroud)

html css forms textarea

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

CakePHP - 无法在视图中获取会话变量

在ProjectsController.php中,我正在设置会话变量,因为我希望在所有控制器,模型和视图中都可以访问该信息:

$this->Session->write('Project.title', $this->Project->title);
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试从Projects视图访问它时,如下所示:

        <p>Project: <strong>
        <?php if (isset($session->read('Project.title'))): 
            $session->read('Project.title');
        ?>
        <?php else: ?>
            Not selected
        <?php endif; ?>
        </strong></p>       
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Fatal error: Can't use method return value in write context 
Run Code Online (Sandbox Code Playgroud)

这是指上面代码的第二行.

我已经通过CakePHP文档并搜索了SO,我在这里做错了什么?

谢谢!

编辑:

我也尝试过使用:

$this->Session->read('Project.title')
Run Code Online (Sandbox Code Playgroud)

导致相同的错误消息.

php session cakephp

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

JS/Jquery - 通过键从数组中删除多个元素

我有一组键(例如2,3,4,101,102,454).

我想从数组中删除带有这些键的元素.有没有办法一次性删除它们?

我尝试迭代for循环,并使用splice 逐个删除元素,但从未删除所有元素 - 我的猜测是因为它修改了我循环的数组.

javascript arrays jquery

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