我目前遇到一个问题,我有一个javascript对象试图使用setInterval来调用自身内部的私有函数.但是,当我尝试调用它时,它无法找到该对象.我有一种感觉,因为window.setInterval试图从外部调用对象,但没有对该对象的引用.FWIW - 我也无法使用公共功能.
基本要求是我可能需要拥有此对象的多个实例来跟踪一次发生的多个上载.如果你有一个比现在更好的设计或者可以使当前的设计工作,那么我就是全部的耳朵.
以下代码用于连续ping Web服务以获取文件上载的状态:
var FileUploader = function(uploadKey) {
var intervalId;
var UpdateProgress = function() {
$.get('someWebService', {},
function(json) {
alert('success');
});
};
return {
BeginTrackProgress: function() {
intervalId = window.setInterval('UpdateProgress()', 1500);
},
EndTrackProgress: function() {
clearInterval(intervalId);
}
};
};
Run Code Online (Sandbox Code Playgroud)
这就是它的调用方式:
var fileUploader = new FileUploader('myFileKey');
fileUploader.BeginTrackProgress();
Run Code Online (Sandbox Code Playgroud) 我使用JavaScriptSerializerASP.net类来序列化我的对象并将其返回给客户端.如何使用JavaScript反序列化字符串?
所以我有一个正/负div,当点击按钮时,它会增加或减去一个值.我的问题是,当我将其中两个放在页面上时,它们会相互冲突.
我怎样才能调整它们以免它们发生冲突?
你可以在这里看到工作代码:http://codepen.io/maudulus/pen/yjnHv
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="css.css">
<script type="text/javascript" src="main.js"></script>
</head>
<div class="doors">
<div class="miniDoor left">-</div>
<input id="middle" placeholder="0"/>
<div class="miniDoor right">+</div>
</div>
<br><br><br><br><br><br><br>
<div class="doors">
<div class="miniDoor left">-</div>
<input id="middle" placeholder="0"/>
<div class="miniDoor right">+</div>
</div>
$(function(){
$('.left').on('click',function() {
subtractInputValue(this)
});
$('.right').on('click',function() {
addInputValue(this)
});
});
function addInputValue(thisDiv) {
inputVal = $(thisDiv).parent().children('input').val()
if (inputVal == "") {
$(thisDiv).parent().children('input').val(1)
} else {
$('#middle').val(eval(inputVal) +1)
}
}
function subtractInputValue(thisDiv) {
inputVal = $(thisDiv).parent().children('input').val()
if (inputVal == …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个lib,我需要动态调用函数,具体取决于我在参数中的变量,如下所示
strategies = min
function dispatchRuleToStrategy(strategies)
{
$.each(strategies, function(index, value) {
strategy = "strategy_" + value;
});
}
function strategy_min()
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
我如何调用该函数strategy_min()的dispatchRuleToStrategy()?
我一直在尝试一些没有任何工作的东西.
谢谢你的帮助
代码如下
const {
aForm,
bForm,
eForm,
qForm,
} = this.form;
return (
aForm.isEditing ||
bForm.isEditing ||
eForm.isEditing ||
qForm.isEditing
);
Run Code Online (Sandbox Code Playgroud)
有没有办法重构这个?就像是
const forms = pick(this.form, [
"aForm",
"bForm",
"eForm",
"qForm",
]);
Object.values(forms).map(f => f.isEditing).join("||") //Need to return boolean value.
Run Code Online (Sandbox Code Playgroud) 我想随机生成这样的东西.
233 + 333 = 566
我的意思是第一个数字,运算符和第二个数字是随机生成的.
所以,我现在写了这个代码.
var x = parseInt(Math.random()*1000),
y = parseInt(Math.random()*1000),
operators = ['+', '-', '*', '/'],
operatorNum = parseInt(Math.random()*4),
operator = operators[operatorNum],
result;
result = x + operator + y;
Run Code Online (Sandbox Code Playgroud)
但这只是给我一个像"748/264"字符串的东西.它没有给我生成计算的结果.
我想我需要将运算符从字符串转换为运算符类型.但是,我认为没有运营商类型.
编辑
我正在构建Chrome扩展程序.根据Chrome扩展程序政策,我不允许使用该eval功能.
我无法理解这一点:
parseFloat('1/2') == 1 Not Expected
parseFloat(1/2) == 0.5 Expected
parseFloat('0.5') == 0.5 Expected
parseFloat(0.5) == 0.5 Expected
Run Code Online (Sandbox Code Playgroud)
这是一个问题还是我做错了什么?另外,如何获得
parseFloat('1/2') == 0.5
Run Code Online (Sandbox Code Playgroud)