我正在使用data-HTML标记中的方法存储数据,如下所示:
<td><"button class='delete' data-imagename='"+results[i].name+"'>Delete"</button></td>
Run Code Online (Sandbox Code Playgroud)
然后我在回调中检索数据,如下所示:
$(this).data('imagename');
Run Code Online (Sandbox Code Playgroud)
这很好.我坚持的是试图保存对象而不仅仅是其中一个属性.我试着这样做:
<td><button class='delete' data-image='"+results[i]+"'>Delete</button></td>
Run Code Online (Sandbox Code Playgroud)
然后我尝试访问name属性,如下所示:
var imageObj = $(this).data('image');
console.log('Image name: '+imageObj.name);
Run Code Online (Sandbox Code Playgroud)
日志告诉我undefined.所以看起来我可以在data-属性中存储简单的字符串,但我无法存储JSON对象......
我也试过使用这个语法孩子没有运气:
<div data-foobar='{"foo":"bar"}'></div>
Run Code Online (Sandbox Code Playgroud)
有关如何使用该data-方法在HTML标记中存储实际对象的任何想法?
我想知道:before和:after伪元素是否可以使用inherit值从父级继承高度,而实际元素是否这样做?
我有一个包含很长字的内联块元素.当我调整视口大小直到我到达下一行的文本的断点时,我得到了大量的空间.但是,我希望inline-block元素立即包装到其内容的宽度.
我发现很难准确解释发生了什么,所以在GIF动画下面说明我的问题:
调整视口大小时:

要清楚,上面的图像是我不断调整视口大小.
有没有人知道如何实现我想要的?即使使用CSS连字,白色空间仍然存在(我不想要).
JSFiddle.调整框架大小以查看我的意思.
div {
display: inline-block;
background-color: black;
color: white;
padding: 5px;
}
Run Code Online (Sandbox Code Playgroud) 我想从枚举中得到一个字符串文字联合.
对于这个枚举......
enum Weekday {
MONDAY = 'mon',
TUESDAY = 'tue',
WEDNESDAY = 'wed'
}
Run Code Online (Sandbox Code Playgroud)
......我想得到这个:
type WeekdayType = 'mon' | 'tue' | 'wed';
Run Code Online (Sandbox Code Playgroud)
我试过typeof keyof Weekday但结果却是'MONDAY' | 'TUESDAY' | 'WEDNESDAY'.感觉解决方案可能与映射类型有关,但我似乎无法绕过它.
我该怎么做呢?
根据jQuery API文档和此处的一些示例,scrollLeft是一个有效的参数animate().但是,我一直收到这个错误Uncaught TypeError: Cannot use 'in' operator to search for 'scrollLeft' in undefined.
$('#prev a, #next a').click(function() {
$(window).animate({scrollLeft: 500}, 1000);
});
Run Code Online (Sandbox Code Playgroud)
我忽略了一些简单而愚蠢的东西吗?我究竟做错了什么?谢谢 :)
经过一年的反复试验和学习,我觉得我开始更多地了解JavaScript了.所以,现在,我想尝试编写一个简单的2D平台游戏(想想Super Mario World或Sonic the Hedgehog).为此,我将使用EaselJS库.
我试图弄清楚如何使用左右箭头键在画布中移动/平移'世界'.我知道如何keydown在箭头键上运行一个函数,但是我不太确定我应该如何处理移动/平移.

当按下某个键时,我应该调整画布中每个东西的位置/坐标吗?或者我应该把所有东西放在容器中并移动容器的位置/坐标?
我会感激任何促使我走向正确方向的东西.Tyvm :)
更新回答 下面选择的答案证实我确实必须将所有内容放入容器中,以便我可以设置该容器的位置.这是我起草的代码,它的工作原理.
// Canvas
var stage = new createjs.Stage('game');
createjs.Ticker.addEventListener('tick', tick);
function tick(event) {
stage.update();
}
// Cave
var cave = new createjs.Bitmap('img/cave.png');
cave.x = cave.y = 0;
// World
// Pans World if the left or right arrow keys are pressed
var world = new createjs.Container();
world.x = 0;
world.y = 0;
world.addChild(cave);
stage.addChild(world);
$(window).keydown(function(e){
switch (e.which || e.keyCode){
case 39: // right arrow key …Run Code Online (Sandbox Code Playgroud) 我怎样才能有一个函数接受或者命名参数(foo({a: 'hello', b: 'it is me'}))或位置参数(foo('hello', 'it is me'))?
我知道可以通过将对象传递给函数来模拟命名参数:
function foo(options) {
options = options || {};
var a = options.a || 'peanut'; // whatever default value
var b = options.b || 'butter'; // whatever default value
console.log(a, b);
}
// ES6 allows automatic destructuring
function foo({a = 'peanut', b = 'butter'} = {}) {
console.log(a, b);
}
Run Code Online (Sandbox Code Playgroud)
但这不允许我接受通过的位置论证.
我想使用ES6,但ES5的任何东西都可以.
我正在尝试在逻辑运算符两侧的 if 语句中使用多个参数。我首先从 || 开始 运算符,按预期工作:
var a = 'apple', b = 'banana', c = 'cherry';
if (a == 'banana' || a == 'apple' || b == 'banana' || b == 'apple') {
console.log('example 1') // returns
}
if ((a || b) == 'banana' || (a || b) == 'apple') {
console.log('example 2') // returns
}
if (a == ('apple' || 'banana') || b == ('apple' || 'banana')) {
console.log('example 3') // returns
}
if ((a || b) == ('apple' …Run Code Online (Sandbox Code Playgroud) javascript if-statement multiple-conditions logical-operators
如何使用ES6模块分配命名空间?我想用例如jQuery做的,其中命名空间是以$预期的ES6方式进行的.我的所有模块都是在单独的文件中构建的,这些文件将类/函数/任何内容导出为默认值(例如export default class Pikachu).如何将其导入另一个(主)文件,以便用户可以使用例如Namespace.Pikachu?
我已经明白它可能与命名出口有关,但我不完全确定如何.有什么帮助吗?
我正在尝试将此函数重构为无点。
function siblings(me) {
return R.pipe(family, R.reject(equalsMe(me)))(me);
}
Run Code Online (Sandbox Code Playgroud)
我想通过me管道传递给一个函数以及family返回的值。
用R.useWith或R.converge用R.identity或尝试了一些东西R.__(甚至不确定我是否应该使用它)但发现没有任何效果。
可能重复:
如何返回AJAX响应文本?
我正在尝试使用以下代码.我知道在函数中的变量范围内我做的不对,但我无法弄清楚是什么(我主要是设计师,我很高兴我终于明白了JSON的含义).任何人都可以把我推向正确的方向吗?谢谢 :)
var list = new Array();
//Twitter
function twitter(photos){
$.each(photos.results, function(index, photo){
if (photo.entities.media){
list.push(photo.entities.media[0].media_url);
console.log(list); // working here, returns array
}
});
}
var url = "https://search.twitter.com/search.json?callback=?&q=%23pikachu&include_entities=true&count=50";
$.getJSON(url, twitter);
console.log(list); //not working here, returns []
Run Code Online (Sandbox Code Playgroud) 我如何从这样的对象中推断所有值……
const fruits = {
a: 'apple',
b: 'banana'
};
Run Code Online (Sandbox Code Playgroud)
…让我明白了吗?
type fruitValues = 'apple' | 'banana';
Run Code Online (Sandbox Code Playgroud)
(我相信我正在寻找与$Values<T>Flow 相当的产品)
我可以在函数中将数组作为参数/参数传递吗?
例如,这有效:
key(0, arrowRight, 'regX', anchorLast, 8, 'quartInOut', 175);
Run Code Online (Sandbox Code Playgroud)
但是,这不是:
var banana = [0, arrowRight, 'regX', anchorLast, 8, 'quartInOut', 175]
key(banana);
Run Code Online (Sandbox Code Playgroud)
Uncaught TypeError: Cannot read property 'x' of undefined从key()函数内返回.什么是undefined这里是什么应该是arrowRight(对象).
我已经尝试过寻找答案了,大多数都是使用.apply()(或.call()),但我不确定如何将这个应用到我的情况中.我甚至不是同样的问题(仍然是Javascript初学者).
我没有在key()这里发布这个功能,因为我觉得它不相关.
javascript ×8
jquery ×3
css ×2
ecmascript-6 ×2
json ×2
typescript ×2
ajax ×1
arrays ×1
canvas ×1
easeljs ×1
enums ×1
function ×1
html ×1
html5-canvas ×1
if-statement ×1
inheritance ×1
module ×1
namespaces ×1
pointfree ×1
ramda.js ×1
resize ×1
scope ×1
word-wrap ×1