小编AKG*_*AKG的帖子

将JSON对象存储在HTML jQuery中的data属性中

我正在使用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标记中存储实际对象的任何想法?

html jquery json

125
推荐指数
7
解决办法
23万
查看次数

可以:before和:after伪元素从父元素继承高度吗?

我想知道:before:after伪元素是否可以使用inherit值从父级继承高度,而实际元素是否这样做?

css inheritance css-selectors pseudo-element

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

内联块换行额外空间

我有一个包含很长字的内联块元素.当我调整视口大小直到我到达下一行的文本的断点时,我得到了大量的空间.但是,我希望inline-block元素立即包装到其内容的宽度.

我发现很难准确解释发生了什么,所以在GIF动画下面说明我的问题:

调整视口大小时:

动画gif用于说明目的

要清楚,上面的图像是我不断调整视口大小.

有没有人知道如何实现我想要的?即使使用CSS连字,白色空间仍然存在(我不想要).

JSFiddle.调整框架大小以查看我的意思.

div {
    display: inline-block;
    background-color: black;
    color: white;
    padding: 5px;
}
Run Code Online (Sandbox Code Playgroud)

css resize word-wrap

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

Typescript:来自枚举的字符串文字联合类型

我想从枚举中得到一个字符串文字联合.

对于这个枚举......

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'.感觉解决方案可能与映射类型有关,但我似乎无法绕过它.

我该怎么做呢?

enums typescript

15
推荐指数
3
解决办法
2495
查看次数

未捕获的TypeError:无法使用'in'运算符在undefined中搜索'scrollLeft'

根据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 jquery jquery-animate

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

HTML5 Canvas:在EaselJS中使用箭头键移动/平移世界

经过一年的反复试验和学习,我觉得我开始更多地了解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)

javascript canvas html5-canvas easeljs

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

允许在Javascript中使用命名参数或位置参数

我怎样才能有一个函数接受或者命名参数(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的任何东西都可以.

javascript parameter-passing ecmascript-6

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

if 语句中的多个条件位于逻辑运算符两侧

我正在尝试在逻辑运算符两侧的 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

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

ES6模块的命名空间

如何使用ES6模块分配命名空间?我想用例如jQuery做的,其中命名空间是以$预期的ES6方式进行的.我的所有模块都是在单独的文件中构建的,这些文件将类/函数/任何内容导出为默认值(例如export default class Pikachu).如何将其导入另一个(主)文件,以便用户可以使用例如Namespace.Pikachu

我已经明白它可能与命名出口有关,但我不完全确定如何.有什么帮助吗?

javascript namespaces module ecmascript-6

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

Pointfree 动态函数组合

我正在尝试将此函数重构为无点。

function siblings(me) {
  return R.pipe(family, R.reject(equalsMe(me)))(me);
}
Run Code Online (Sandbox Code Playgroud)

我想通过me管道传递给一个函数以及family返回的值。

R.useWithR.convergeR.identity或尝试了一些东西R.__(甚至不确定我是否应该使用它)但发现没有任何效果。

javascript functional-programming pointfree ramda.js

5
推荐指数
3
解决办法
149
查看次数

Javascript变量不在函数外工作

可能重复:
如何返回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)

javascript ajax jquery json scope

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

从对象推断值

我如何从这样的对象中推断所有值……

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 相当的产品)

typescript

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

数组作为函数参数/参数

我可以在函数中将数组作为参数/参数传递吗?

例如,这有效:

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 undefinedkey()函数内返回.什么是undefined这里是什么应该是arrowRight(对象).

我已经尝试过寻找答案了,大多数都是使用.apply()(或.call()),但我不确定如何将这个应用到我的情况中.我甚至不是同样的问题(仍然是Javascript初学者).

我没有在key()这里发布这个功能,因为我觉得它不相关.

javascript arrays function

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