相关疑难解决方法(0)

jQuery - 你不能没有的功能

我昨晚和一位同事交谈,jQuery出现了 - 他从来没有遇到jTemplates或曾经考虑过可能存在的东西......

它让我思考 - jQuery中存在多少其他非常有用的功能,因为存在完全可维护的替代品而未被使用

我希望这个问题不会被关闭 - 我知道它不遵循现代Stack-Overflow QA范例,但我认为它可以形成一个有用的资源,这样的问题曾经是常见的,所以C#,javascript等有类似的产品.

我将从明显的开始:

  • 选择者需要我说更多?

  • 外观修改器 - 可以轻松应用于DOM元素的各种视觉效果.看到这里.

  • jQuery UIThemeRoller一起使用特别有用.还有许多小部件和交互.到目前为止,我只使用了DialogueSlider控件,两者都表现出色.看到这里.

  • .ajax和它的变种(.get(),. load()等) - 承担了制作ajax请求的所有痛苦.看到这里.

  • .live将事件处理程序附加到现在和将来与选择器匹配的所有元素!天才!看到这里.

  • jTemplates - 替代jQuery.tmpl()函数,这个插件允许您创建功能强大的html模板,用于呈现客户端数据.看这里.

  • qTip2 - 仍处于正式测试阶段,但这个插件只是创建工具提示的最佳选择.看到这里.

  • 延迟 - 管理异步代码的一种干净而明智的方法.请参阅此处获取基本信息和更多链接.

请添加我错过的任何内容,我会相应更新我的列表.

jquery jquery-plugins

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

为什么我需要在 Promise .then() 中闭包?

我一直在学习 Node (7.4.0) 中的 ES6 Promise,因为我想应用它们来处理串行通信。我做出了一个承诺,它是许多较小承诺的集合,允许我使用发送者、事件监听器和超时来序列化与设备的通信。但是,我不太理解 .then() 链接,因为我需要添加一些额外的闭包,这些闭包看起来与我在许多示例中看​​到的不同,这让我相信我误解了一些基本的东西。考虑这个函数(我删除了所有的prototype/this.code以使其更小):

function sendAck(command, ack, timeout) {
  return new Promise((resolve, reject) => {
    if (gReady === undefined) reject('not ready');
    // each of these three functions returns a promise
    let sendPromise = createSend(command);
    let ackPromise = createAck(ack);
    let timeoutPromise = createTimeout(timeout);
    // p1 = we hear a response, or timeout waiting for one
    let p1 = Promise.race([ackPromise, timeoutPromise]);
    // both p1 -and- send function need to resolve
    let p2 = Promise.all([p1, sendPromise]);
    p2.then(values => resolve(values)).catch(err …
Run Code Online (Sandbox Code Playgroud)

javascript node.js promise

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

jquery:我必须使用parseInt()即使处理数字,为什么?

我有以下脚本

<select id="select1">
      <option value="1">1day</option>
      <option value="2">2day</option>
      <option value="3">3day</option>
    </select>

    <select id="select2">
      <option value="1">1day</option>
      <option value="2">2day</option>
      <option value="3">3day</option>
    </select>
Run Code Online (Sandbox Code Playgroud)

和jquery

$("#select2").change(function() {
            var max_value = parseInt($("#select2 :selected").val());
            var min_value = parseInt($("#select1 :selected").val());
            if(max_value < min_value)
            {
              $("#select1").val($(this).val());
            }
        });
Run Code Online (Sandbox Code Playgroud)

而现在,无论如何我无法理解 - 如果选项元素的值是整数,为什么我必须使用parseInt()?在某些情况下,如果没有parseInt(),它将无法工作.

谢谢

javascript jquery

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

Javascript工厂模式变量范围

我正在按照教程显示工厂模式以在javascript中创建对象.下面的代码让我难以理解它的工作原理.

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>6-2.htm</title>
</head>
<body>
<script type="text/javascript">
function createAddress(street, city, state, zip) {
  var obj = new Object();
  obj.street = street;
  obj.city = city;
  obj.state = state;
  obj.zip = zip;
  obj.showLabel = function() {
    //alert(this.street + "\n" + this.city + ", " + this.state + " " + this.zip);
    //var obj;
    alert(obj.street + "\n" + obj.city + ", " + obj.state + " " + obj.zip);
  };
  return obj;
};

var JohnAddr = …
Run Code Online (Sandbox Code Playgroud)

javascript scoping factory-pattern

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

"a = object,object"的Javascript语法

昨天我发现了这个功能:

function clone(obj) {
    return typeof obj === 'undefined' ?
        this : (clone.prototype = Object(obj), new clone);
}
Run Code Online (Sandbox Code Playgroud)

我虽然在Javascript中看到了很多,但这种语法对我来说不得而知:

 clone.prototype = Object(obj), new clone
Run Code Online (Sandbox Code Playgroud)

谁能解释我怎么读这个?你能给我链接到正确的定义吗?我在Mozilla的MDC中找不到它,也不知道如何在网上找到它,但这是我第一次看到这种语法.感谢您的努力.

最终解决方案

我根据这里的答案做了一些测试,我找到了:

var b;
b=alert('test'),6;
alert(b);  // alert undefined
b=5,alert('test2');
alert(b);  // alert 5
Run Code Online (Sandbox Code Playgroud)

感谢christoph研究我们发现了更多:

var a, b, c;
a = 1, 2;   // a is 1
(b = 1), 2; // b is 1 - same as above!
c = (1, 2); // c is 2
Run Code Online (Sandbox Code Playgroud)

啊,我也在IE6上测试它,它的工作原理,所以这必须是旧的语法,没有关于它的信息?:(奇怪......

你们两个都给了很好的解决方案,感谢这里的解决方案!

javascript syntax

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

正则表达式匹配Javascript嵌套问题

首先,原谅我的hacky代码,我只是想尝试一下,我第一次学习javascript.基本上,给定字符串"abc!random {3}"将意味着返回以"abc"开头并以0-3开始的随机数结束的字符串.

这是我有的:

var pattern=/!random{([^{]*?)}/gi;
var text="abc!random{3}def!random{4}ghi!random{!random{3}}";

while (pattern.test(text))
{
    text=text.replace(pattern, Math.random() * parseInt("$1")); 
}
Run Code Online (Sandbox Code Playgroud)

问题是parseInt函数.似乎1美元没有传递给它......它的价值被清除或者其他东西.如果我做:

text=text.replace(pattern, "$1");   
Run Code Online (Sandbox Code Playgroud)

它正确地返回{}之间的内容,因此正则表达式正在工作,匹配存储在$ 1中.但是,只要我将它用作$ 1的参数,它的值似乎就被清除了.是什么赋予了?

javascript

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

需要获取作为字符串发送的变量的值?

我正在向函数发送一个字符串作为参数,但我已经在该名称中有一个全局变量,我想得到该变量的值,但它的发送为未定义的..

我的示例代码

我有一个数组如[0] [0],reg [0] [1],reg [1] [0],reg [1] [0],reg [2] [0],reg [2] [ 1]

我有一些全局变量,如tick1,tick2,tick3 ......

它的值为0,1或2

在我打电话的功能中

calc_score(id) //id will return as either tick1,tick2,tick3
{
    alert(eval("reg[id][1]")); // it should return the value of reg[0][1] if id is 0

}
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

id不会是数字它将是字符串..所以我该怎么做?

javascript

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

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

在数组中添加整数的问题

我正在尝试遍历我的总计,以获得我的网络应用程序的总计.到目前为止,我正在使用的代码如下:

function calcAllFields() {
    var name = parseFloat($('div [name = total[]]').text());
    var totArray = $.makeArray(name);
    var total = 0;
        for (var i = 0; i < totArray.length; i++) {
                total += totArray[i];
                }
    $("#target1").text(total);
}
Run Code Online (Sandbox Code Playgroud)

不是添加整数,而是将某些东西作为字符串读取.说我要加200 + 50,而不是250我得到20050.谁能指出我做错了什么?谢谢!

javascript jquery

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

开始使用javascript

我从最近几天开始学习javascript,我把它读作脚本语言.我想知道它与其他脚本有何不同.它在哪里运行?我的意思是我的代码编译到哪里或错误被捕获?我甚至想知道任何用于学习javascript的好的在线教程.

javascript

0
推荐指数
2
解决办法
4934
查看次数

函数设置变量不应该

function genEnemy(a) {
 //javascript:alert(en[0]+'\n'+genEnemy(en[0])+'\n'+en[0])
 with (Math) {
  a[1]=round(a[1]*(.5+random()))
  a[2]=round(a[2]*(1+random()))
  for (var b=0;b<5;b++) a[3][b]=round(a[3][b]*(a[3][b]/2+random()*a[3][b]/10))
  for (var b=0;b<a[4].length;b++) random()<it[a[4][b]][3]/10?a[4][b]=0:0
  }
 return a
 }
Run Code Online (Sandbox Code Playgroud)

根据每个敌人阵列的基础生成敌人的统计数据的脚本.(RPG游戏)问题是,当我期望它返回包含新统计数据的数组时,它还将敌人数组设置为新数组.为什么是这样?显然你可以看到问题是如何由此引起的(基础被改变,所以弱小的敌人可以变得更加强大).如何阻止它在en(敌人值数组)中设​​置数组?

javascript arrays variables return

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