小编Cer*_*rus的帖子

Javascript中此行的含义和用途 - star [t] [0]> x << 1 &&(star [t] [0] - = w << 1,test =!1)

我在以下网址的标题中看到了一个画布动画 - http://blogs.msdn.com/b/davrous/archive/2011/07/21/html5-gaming-animating-sprites-in-canvas-with-easeljs. ASPX

这里有一个小提琴手

在浏览javascript代码时,一些烦人的线路需要花费大量时间来理解它们,仍然没有运气,只留下了向StackOverflow专家询问的唯一选择.

这些线(jsfiddle中的第85-90行) -

 star[t][0] += mouse_x >> 4, 
 star[t][0] > x << 1 && (star[t][0] -= w << 1, test = !1), 
 star[t][0] < -x << 1 && (star[t][0] += w << 1, test = !1), 
Run Code Online (Sandbox Code Playgroud)

所有这些都在for循环中运行.对我来说,主要的混淆点是,在第1行中的赋值之后,在第2行和第3行进行这两个比较.当上面第2行和第3行的这两个比较的结果没有存储到任何变量中时,其目的是什么? ?

javascript

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

找到排序数组值之间的最大差异

我有一个可能看起来像这样的数组......

var 数组 = 数组(1,4,7,8,12,15);

数组中的值将始终是整数,并且总是会增加,或者可以与之前相同,但至少不会变少。

现在我想循环遍历数组并找出哪个“步骤”之间有最大的差异,所以在我的示例中,这将是数组键 4&5,因为从 8-12 == 4...但也可能发生这种情况这将是具有相同值的多个步骤,假设我的数组是这样的..

var 数组 = 数组(1,5,7,8,12,15);

那么就会是 0&1 和 4&5....

我正在寻找一个可以返回我这个的函数...哦,它必须是 PureJs...

我希望有一个人可以帮助我。

javascript language-agnostic arrays algorithm

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

jQuery每个错误:未捕获TypeError:不能使用'in'运算符在div中搜索'18'[data-role = page]

我的HTML就像

<div data-role="page" id="Dialog_1" data-url="Dialog_1">...</div>
<div data-role="page" id="Dialog_2" data-url="Dialog_2">...</div>
 .
 .
 .
<div data-role="page" id="Dialog_17" data-url="Dialog_17">...</div>
<div data-role="page" id="Dialog_18" data-url="Dialog_18">...</div>
Run Code Online (Sandbox Code Playgroud)

我想通过$ .each选择所有data-role ="page"

我的jQuery

$.each("div[data-role=page]", function (){
   console.log($(this).attr('id'));
});
Run Code Online (Sandbox Code Playgroud)

它给出了错误:

Uncaught TypeError: Cannot use 'in' operator to search for '18' in div[data-role=page]
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/8xUy3/

html javascript jquery

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

Javascript Replace - 动态替换值

我在字符串中有一个模板,我想用另一个字符串中的值替换一些占位符。对于我替换的每个占位符,我还想插入一个中断标签。

例如,如果#ADDRESS2#在模板中找到,我使用以下代码将其所有出现的地方替换为 string 中的值val.address2

    template_html = template_html.replace(/#ADDRESS2#/g, '<br />'+ val.address_2);
Run Code Online (Sandbox Code Playgroud)

但是,在某些情况下字符串val.address2为空。在这种情况下,我不想插入中断标签。

所以我改变了我的代码如下

    if( val.address_2.length > 0 ) {
        template_html = template_html.replace(/#ADDRESS2#/g, '<br />'+ val.address_2);
    } else {
        template_html = template_html.replace(/#ADDRESS2#/g, '');
    }
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来编写上述代码,因为我有多个占位符,并且对于每个占位符我必须编写代码 2 次。

javascript

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

在包含div和图像时打开/关闭

我试图通过使用css,javascript添加/删除活动类来突出显示当前图像.

我将我的解决方案上传到jsfiddle,请看一下.真的想知道这有什么问题. http://jsfiddle.net/BEmXZ/39/

HTML

<div class="container-thumbs">
    <div><a><img src=".jpg" /></a></div>
    <div><a class="active"><img src=".jpg" /></a></div> 
    <div><a><img src=".jpg" /></a></div>
</div>
Run Code Online (Sandbox Code Playgroud)

使用Javascript

var make_button_active = function() {
    //Get item siblings
    var siblings =($(this).siblings());
    //Remove active class on all buttons
    siblings.each(function (index) {
            $(this).removeClass('active');
        }
    );

    //Add the clicked button class
    $(this).addClass('active');
}   

$(document).ready(function() {
    $(".container-thumbs a").click(make_button_active);
});
Run Code Online (Sandbox Code Playgroud)

CSS

.container-thumbs{
    width: 300px; height: 25; font-size: 18px;
}
.container-thumbs a{
    list-style: none; float: left; margin-right: 4px; padding: 5px;
}
.container-thumbs div a:hover, .container-thumbs div a.active { …
Run Code Online (Sandbox Code Playgroud)

html javascript css

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

javascript"小于"if语句失败

这是我的功能:

function reCalculate(i) {
    document.getElementById("Q" + i).value = document.getElementById("C" + i).value - document.getElementById("QA" + i).value;

    if (document.getElementById("Q" + i).value < 0) {
        document.getElementById("Q" + i).value = 0;
    }
    if (document.getElementById("Q" + i).value < document.getElementById("E" + i).value && document.getElementById("Q" + i).value != 0) {
        alert(document.getElementById("Q" + i).value + " is less than " + document.getElementById("E" + i).value + "?");
        document.getElementById("Q" + i).value = document.getElementById("E" + i).value;
    }
    document.getElementById("Q" + i).value = Math.ceil(document.getElementById("Q" + i).value);
}
Run Code Online (Sandbox Code Playgroud)

它检查Q,如果它小于0,则使其为0.然后,如果它不是0,但它小于E,则使其成为E.由于某种原因,此功能起作用,除非Q是一个两位数字.

例如,如果Q为7且E为2,则它将Q保留为7.但是,如果Q为10且E为2,则由于某种原因它认为10 <2,并且它将Q更改为2!

我在这里遗漏了什么?

javascript if-statement

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

如何覆盖jquery中的现有函数

这是所有js的默认值

getEditor: function(){
    $( '#datatableEditor' ).remove();
    var editor = $( '<div id="datatableEditor" class="popupEditor"/>' );
    $( 'body' ).prepend( editor );

    var dialog = $(editor).dialog({
        title: 'Edit item',
        modal: true,
        width: 'auto',
        height: 'auto'
    });
Run Code Online (Sandbox Code Playgroud)

现在我正在写另一个js.我需要覆盖getEditor我的js ...

javascript jquery javascriptmvc

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

将变量分配给 document.getElementById().Innerhtml 不起作用

请参阅下面的代码:

var text=["yuppie", "kkkoseh", "watchdog"];

var messageIndex=0;

function looptext (){
    var MessageElement= document.getElementById("happy").innerHTML
    var Message=text[messageIndex];

    MessageElement=Message;
    messageIndex++;

    if(messageIndex>=text.length){
        messageIndex=0;
    }
}

window.onload = function() {
    setInterval(looptext, 1000);
};
Run Code Online (Sandbox Code Playgroud)

它不起作用。

但是当我删除.innerhtmlat 变量MessageElement并设置 时MessageElement.innerHtml= Message,它起作用了。

为什么会这样?
抱歉,我是学习 JavaScript 的新手。

javascript

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

为什么使用innerHTML比JQuery的append()函数更慢地将大量元素附加到DOM?

我有一个vanilla JavaScript函数来测试向DOM添加大量元素:

var start = new Date().getTime();
var blah;
var div = document.getElementById("me");
for (i = 0; i < 5000; ++i) {
    div.innerHTML += "<div>" + i + "</div>";//Simply add to div.
}
var end = new Date().getTime();
var time = end - start;
alert('Execution time: ' + time);
Run Code Online (Sandbox Code Playgroud)

结果:

         Chrome           IE10
         ------           -----  
Vanilla      39             130  (seconds)
Run Code Online (Sandbox Code Playgroud)

JQuery的:

for (i = 0; i < 5000; ++i) {
    $("#me").append("<div>" + i + "</div>");//Now using append instead.
}
Run Code Online (Sandbox Code Playgroud)

结果

         Chrome           IE10 …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

AngularJS ngIf对象具有属性

我有这样一个数组:

{
    selector: "departureDate",
    selectorName: "Departure Date",
    constraints: ["GreaterThan", "LessThan", "Equals", "NotEquals"],
    valueType: "Date"
}, {
    selector: "arrivalDay",
    selectorName: "Arrival day(of week)",
    constraints: ["In"],
    valueType: "ChoiceList",
    valueChoices: ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]
}
Run Code Online (Sandbox Code Playgroud)

现在我想在我的HTML中执行此操作:

<div class="col-xs-3" *ngIf="prototype.valueChoices">
            <select class="form-control" [(ngModel)]="expression.valueChoice">
                <option *ngFor="#valueChoice of prototype.valueChoices" [value]="constraint">
                    {{ valueChoice }}
                </option>
            </select>
        </div>
Run Code Online (Sandbox Code Playgroud)

是否可以检查对象是否包含像valueChoices这样的属性,而不是像上面那样显示HTML.或者这不是正确的方法吗?

typescript angular

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