小编ak8*_*k85的帖子

首先单击event.preventDefault()然后删除

我有默认的锚,如果它有一个类subnav,如这个小提琴所示.

我只希望第一次单击禁用此功能,然后我希望恢复正常的锚功能.做这个的最好方式是什么?我尝试了涉及下面代码的东西,但这似乎不起作用?

  $(this).unbind(event.preventDefault());
Run Code Online (Sandbox Code Playgroud)

也许像这个伪代码?

if (click count === 0 ) {
    event.preventDefault();
}
Run Code Online (Sandbox Code Playgroud)

或者有更好的方法来解决这个问题吗?

jquery

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

在Jquery中设置全局变量onclick

我想在Jquery中设置一个全局变量,这样当我单击列表项时,单击的列表项的id将成为变量的值.我有下面的代码也在这个小提琴.

但是我拥有它的方式:当你单击列表项时,正确地将值放入console.log.However然后当我点击demo div时,变量被重置并且未定义.

当我点击demo时,如何获取id的值,当我点击列表项时,它是id的值?

例如:

当我点击aaa时,点击演示框时的值应为id-1

当我点击bbb时,单击演示框时的值应为id-2

    <div id="demo"></div>
    <ul>
        <li id="id-1">aaa</li>
        <li id="id-2">bbb</li>
    </ul>

    <script>
    var id;
    jQuery(document).on("click", "li", function (event) {
            var id =jQuery(this).attr('id') || '';
            console.log(id);
        $( "#demo" ).show();
        });

    $(function() {
    $("#demo").click(function(e) {
    console.log(id);
    });
    });

    </script>

    <style>
    #demo {
        border: 1px solid; 
        display:none;
        height: 100px; 
        width: 100px;
    }
    </style>
Run Code Online (Sandbox Code Playgroud)

html javascript css jquery

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

在sql中设置sum的小数位数

我有一个数据库,我用于辩论比赛我试图排名积分,看看哪些学校将在学期末的决赛中发挥作用.

我有这个工作如下所示但是我无法绕过ptc字段,它目前返回最多4个小数位,例如0.6667如果他们赢得了3个辩论中的2个.

    SELECT   t.id,
             t.name                  AS name,
             SUM(t.id  = d.winnerid) AS w,
             SUM(t.id != d.winnerid) AS l,
             SUM(t.id  = d.winnerid)/(SUM(t.id  = d.winnerid)+SUM(t.id != d.winnerid)) AS ptc
    FROM     debates AS d
        JOIN teams   AS t ON t.id IN (d.hostid, d.visitid)
    WHERE    d.visitid != -1
         AND d.debatedate < CURDATE()
    GROUP BY t.id
    ORDER BY ptc DESC
Run Code Online (Sandbox Code Playgroud)

我相信我必须在这里使用十进制(2,2)但是我无法正确使用语法我尝试了一些不同的东西,比如

SUM(t.id  = d.winnerid)/(SUM(t.id  = d.winnerid)+SUM(t.id != d.winnerid)) AS ptc decimal (2,2)
Run Code Online (Sandbox Code Playgroud)

如果需要,我很乐意提供有关表格的更多信息,但我不认为这是必需的?

mysql sql sum decimal

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

Angular JS使用promises和本地存储记录数据

我想在我的角度应用程序中记录操作.

如果我无法发布,那么我想将该项目添加到本地存储中的另一个日志,以便下次发布时我也可以尝试添加这些项目.

一旦完成,我想尝试发布当前项目.我还希望有一个(同步)按钮,它可以在不进行操作日志过程的情况下运行整个过程.这样用户就可以尝试发布他们之前无法发布的所有项目.

我想这样接近它.提交

-add项目到本地存储,然后尝试发布.(以便先发布先前的项目)

成功

- 从本地存储中删除项目

出错了

- 将项目保存到本地存储

我是一个公平的方式让这个工作如下所示,但我不知道这是否是最好的方法来解决这个问题.

目前我可以发布有关成功的数据,但不会从本地存储中删除单个项目.

我在一个名为removeName的userService中添加了我在下面的代码中注释掉的内容,因为它当前删除了_nameLog而不是该项的本地存储引用.

但是当您在codepen演示中运行代码时,它每次都会发布每个项目,因为我没有在成功时删除它们?

如何在不删除_namelog的情况下删除成功后的本地存储项(因为这需要保留在ng-repeat中),还是有不同的方式我应该接近这个?

    <body ng-app="myApp">
    <div ng-controller="MyCtrl">
       <input type="text" ng-model="updatedname">
       <input type="button" value="Change name" ng-click="changeName(updatedname)"/>
       <br/>
          Hello, {{name}}! 
    <ul>
        <li ng-repeat="name in nameLog">{{name.value}} - {{name.time}}</li>
    </ul>    
         <input type="button" value="sync" ng-click="syncPosts()"/>
    </div>
    </body>

    <script>
    var myApp = angular.module('myApp',[]);
    myApp.factory('UserService', ['$window','$http', function($window,$http) {
        var _nameLog = [];
        var userService = {};
        userService.name = "John";
        userService.ChangeName = function (value) {
          userService.name = value;
        };
        userService.logName  = function (value) …
Run Code Online (Sandbox Code Playgroud)

javascript html5 local-storage promise angularjs

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

在Vanilla JS中jQuery`index()`等效

我有以下代码片段(currentUser类在不同的列表项上,具体取决于谁正在查看页面).

<ul>
    <li>user 1</li>
    <li>user 2</li>
    <li class="currentUser">user 3</li>
    <li>user 4</li>
</ul>

var curLth = jQuery('.currentUser').index();
console.log(curLth); //outputs 2
Run Code Online (Sandbox Code Playgroud)

我正在处理的网站没有加载jQuery,所以我想知道哪个列表项currentUser没有使用jQuery

我已经NodeList在开发工具中检查了但是没有看到任何我可以用来获得它的东西.

怎么能实现这一目标?

javascript jquery dom

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

在sql中限制计数

我有一个如下所示的查询

SELECT
venueid as VENUES, venue2.venue AS LOCATION,
(SELECT COUNT(*) FROM events WHERE (VENUES = venueid) AND eventdate < CURDATE()) AS number
FROM events
    INNER JOIN venues as venue2 ON events.venueid=venue2.id
GROUP BY VENUES
ORDER BY number DESC
Run Code Online (Sandbox Code Playgroud)

我想限制计数来计算表中的最后5行(按id排序)但是当我添加一个limt 0,5时,结果似乎没有改变.在计算时,您在哪里添加限制以限制计数的行数?

    CREATE TABLE venues (
        id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        venue VARCHAR(255)
    ) DEFAULT CHARACTER SET utf8 ENGINE=InnoDB;

    CREATE TABLE categories (
        id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        category VARCHAR(255)
    ) DEFAULT CHARACTER SET utf8 ENGINE=InnoDB;

    CREATE TABLE …
Run Code Online (Sandbox Code Playgroud)

mysql count

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

PHP删除包含给定字符串的所有文件

我有一个基本的缓存系统设置,它根据url中的参数保存文件,这样如果再次查看该页面,它将访问静态文件.例如,如果我的网址是

http://www.example.com/female/?id=1
Run Code Online (Sandbox Code Playgroud)

我有一个名为id = 1.html的缓存文件夹中的文件

female/cache/id=1.html
Run Code Online (Sandbox Code Playgroud)

目前这是缓存指定的时间,但我希望它始终使用缓存的文件,除非页面更新.

所以我实现了下面的PHP代码.

    <?
        unlink('../' . $gender . '/cache/id=' . $_POST['id'] . '.html');
    ?>
Run Code Online (Sandbox Code Playgroud)

这工作正常,但有时在我的网址中有其他参数.所以目前我的缓存文件夹中有以下文件

    female/cache/id=1.html
    female/cache/id=1&type=2.html
    female/cache/id=1&type=3.html
    female/cache/id=1&type=3&extra=4.html
Run Code Online (Sandbox Code Playgroud)

但是当我保存我的内容时,只删除了female/cache/id = 1.html.

如何删除id = 1的此文件夹中的任何文件

php regex caching unlink

5
推荐指数
2
解决办法
5878
查看次数

多个 INNER JOIN 子查询 sql

我有以下查询,该查询来自这篇文章计数 mysql 中的一行中的项目数,它计算学生连续出席/缺席课堂的次数。

    SELECT
        classlist.studentid,
        student.name,
        classStatus.name status,
        COUNT(*) presentcnt
    FROM
        classlist 
        INNER JOIN student ON classlist.studentid=student.id
        INNER JOIN classstatus ON classlist.presentid=classstatus.id
        INNER JOIN (
            SELECT
                studentid,
                max(CASE WHEN presentid=0 THEN id END)  max_0,
                max(CASE WHEN presentid=1 THEN id END)  max_1
            FROM classlist
            GROUP BY studentid
        ) s
        ON coalesce(classlist.id>least(max_0,max_1) AND classlist.id<=greatest(max_0,max_1),1) AND s.studentid=classlist.studentid
    GROUP BY classlist.studentid
Run Code Online (Sandbox Code Playgroud)

这按预期工作,

    STUDENTID   NAME    STATUS  PRESENTCNT
    111         John    Present     1
    222         Kate    Absent      2
    333         Matt    Present     5
Run Code Online (Sandbox Code Playgroud)

我想扩展查询,以便有一列显示学生是否参加了课程。

如果我运行独立查询,我会得到我想要的结果

    SELECT
        classlist.studentid, …
Run Code Online (Sandbox Code Playgroud)

mysql sql select inner-join subquery

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

为第一个孩子以外的所有孩子添加课程

我有一些html,我想为除第一个孩子以外的所有孩子添加一个班级.

    <div class="test">
        <div class="different">title</div>
        <div class="same">a</div>
        <div class="same">b</div>
        <div class="same">c</div>
    </div>
Run Code Online (Sandbox Code Playgroud)

以下js

<script>
$(".test").children().each(function(i) {
  $(this).addClass("eg_" + (i+1));
});
</script>
Run Code Online (Sandbox Code Playgroud)

看到这个小提琴

http://jsfiddle.net/aaronk85/HaH2y/

我希望每个孩子的测试除了第一个以外都能得到"eg_"+(i + 1)这样的课程,我似乎无法让这个工作吗?

我已经看到了一些类似的例子,见下面的例子,但不能完全解决这个问题.我在哪里错了?

http://jsfiddle.net/aaronk85/y9bEG/11/

jquery

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

使用JS获取当前应用的样式

我在看这篇文章 如何使用javascript获取元素的背景颜色?

这证实了,如果你这样做

div.style.color 
Run Code Online (Sandbox Code Playgroud)

您将返回应用于div的颜色.

但是,如果样式内联应用于元素,这似乎只返回结果?

当通过样式表(或标签)应用样式而不是直接内联时,如何返回应用于元素的样式?

见下面的例子.

console.log(document.getElementById('content').style.backgroundColor);
console.log(document.getElementById('content').style.color);
Run Code Online (Sandbox Code Playgroud)
#content {
  background-color: #000000;
  display: inline-block;
  height: 100px;
  width: 100px;
}
Run Code Online (Sandbox Code Playgroud)
<div id="content" style="color:red;"></div>
Run Code Online (Sandbox Code Playgroud)

的console.log(的document.getElementById( '内容')style.backgroundColor.);

没有回报

的console.log(的document.getElementById( '内容')style.color.);

返回红色

html javascript css

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