小编mhe*_*ens的帖子

jQuery:暂时更改样式然后重置为原始类

假设我有一个名为testThing的类:

.testThing
{
   background-color:#000000;
   float:left;
   height:50px;
   width:50px;
}
Run Code Online (Sandbox Code Playgroud)

我希望能够在单击按钮时测试背景颜色更改为该类的任何控件:

function setColor(someColor) 
{
   jQuery('.testThing').css('background-color', someColor);
}
Run Code Online (Sandbox Code Playgroud)

但我希望用户能够根据类的内容重置为原始颜色(另一个按钮单击):

function resetClass()
{
   jQuery('#currentColor').removeClass('testThing');
   jQuery('#currentColor').addClass('testThing');
}
Run Code Online (Sandbox Code Playgroud)

看起来这样可行(Albiet不是最好的方法)但控件的背景颜色不会重置为该类中保存的原始值.

现在要么我需要弄清楚为什么删除添加不会重置它或只是一个更好的方法来做...看到删除和读取类似乎很愚蠢...

css jquery

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

如何双向绑定我自己的RxJS主题为[(ngModel)]?

是否有简短的方法来传递RxJS SubjectBehaviorSubjectAngular 2指令以进行双向绑定?其中很长的路要做如下:

@Component({
    template: `
        <input type="text" [ngModel]="subject | async" (ngModelChange)="subject.next($event)" />
    `
})
Run Code Online (Sandbox Code Playgroud)

我希望能够做到这样的事情:

@Component({
    template: `
        <input type="text" [(ngModel)]="subject" />
    `
})
Run Code Online (Sandbox Code Playgroud)

我相信async管道只是单向的,所以这还不够.Angular 2是否提供了一种简单易行的方法?Angular 2也使用RxJS,所以我预计会有一些固有的兼容性.

我是否可以创建一个新ngModel的指令来实现这一目标?

rxjs angular-ngmodel rxjs5 angular

31
推荐指数
5
解决办法
5682
查看次数

如何在没有*隔离范围的指令*中获得双向数据绑定?

scope: { ... }在指令中使用会引入隔离范围,该范围不会从其父范围原型继承.但我总是将它用于不同的原因:使用双向数据绑定声明HTML属性的便捷方式:

scope: {
    attr1: '=',
    attr2: '?='
}
Run Code Online (Sandbox Code Playgroud)

要获得非隔离范围,必须使用scope: true,但不提供声明此类属性的机会.我现在发现自己需要一个具有非隔离范围的指令,但具有双向绑定.实现这一目标的最佳方法是什么?


示例:我的用例是这样的,在以下视图中outer-directive:

<div ng-repeat="e in element">
    <inner-directive two-way-attr="e.value"></inner-directive>
</div>
Run Code Online (Sandbox Code Playgroud)

但是和inner-directive它在同一个模块中outer-directive.它不需要用隔离范围封装.实际上,我需要将$scope继承用于其他目的,因此隔离范围不是一种选择.只是使用HTML属性来建立这种双向通信非常方便.

javascript angularjs angularjs-directive angularjs-scope

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

如何将Android拖阴影的"目标点"从其"触点"中移开?

我正在开发一个应用程序,可以更好地控制拖动对象的删除位置.但是对于电容式触摸屏,用户的手指总是会遮挡掉落目标.

Android允许通过覆盖View.DragShadowBuilder.onProvideShadowMetrics()方法指定拖动阴影上的"触摸点" .但似乎没有办法提供一个流离失所的"目标点".我想从拖曳阴影的触摸点投射一个箭头,可以更精确地操纵到投射目标.

问题:实现这一目标的最简单/最优雅的方法是什么?

我认为我可以在拖动操作期间在屏幕上放置一个不可见的图层,它记录触摸点的坐标,翻译它们并将它们发送到实际的拖放目标 - 基本上重新实现拖动事件.但我想知道是否有更简单的解决方案.或者如果其他人之前做过类似的事情.


编辑:这是我想要的那种拖影的粗略模型:

在此输入图像描述

android drag-and-drop

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

我可以从AngularJS中回收对URL散列片段的控制吗?

我正在使用AngularJS,并希望#hash-fragment在地址栏中处理给定的.但是,这是关键 - 我不会使用散列片段来编码路径.但似乎AngularJS坚持以这种方式解释它.

例如,html5Mode禁用时:

  • 给定的网址: http://my.domain.com#my-hash
  • 变成了http://my.domain.com/#/my-hash,和
  • $location.hash() 将是空的.

html5Mode启用了:

  • 给定的网址: http://my.domain.com#my-hash
  • 变成了http://my.domain.com/my-hash,和
  • $location.hash() 仍然是空的.

AngularJS一定在想:"哦,你有html5,让我为你删除那个哈希".多么体贴......

获取任何东西的唯一方法$location.hash()是当URL具有双重哈希时:

  • 对于给定的URL: http://my.domain.com##my-hash
  • $location.hash()最终等于"my-hash",和
  • 如果还$locationProvider.html5Mode(true)从URL中删除了其中一个哈希值.

但我真的需要一个简单的单个哈希字符来保持未处理状态.这可能吗?

url angularjs

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

以RESTful方式(框和节点)建模更复杂的实体关系

这是一个设置我的问题的例子.我有一个包含'盒子'的模型,他们有一个REST端点:

/boxes, /boxes/{boxId}

该模型还包含"节点":

/nodes, /nodes/{nodeId}

节点可以位于边界上,这是一种多对多关系.让一个节点位于多个边界上是一种表示这些边界(部分)重叠的方式,但节点也有其他用途.

框和节点的快速可视化示例

我正在尝试确定如何以非令人惊讶的RESTful方式对其进行建模.我可以看到几种方法来做到这一点.但我不确定应该使用哪个:

  1. 模型/borders作为具有自己的端点的完全成熟的实体类型.有框参考四个边框(顶部,底部,左侧,右侧).边框引用节点列表.让节点引用边框列表.

  2. /boxNodeRelationships具有自己的端点的模型,并且每个这样的关系指向一个框,一个节点,并包含一个"边框"字段(一个带有四个选项的枚举).

两者都很相似,而且相当"重".另一种选择是更专注:

  1. 给框一个{ border, node }对象列表.为节点提供{ box, border }对象列表.这些对象将从GET调用返回,并期望从POST/ PUT调用返回,但不会是具有端点的完全成熟类型.

我想知道RESTifarian如何解决这个问题,以及听取这些方法的一些优点/缺点.我还想知道是否有其他方法根本不同.

rest metadata relationships

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

我可以在自定义标签视图中使用默认标签样式吗?

我的主要活动是TabActivity,但我的标签不需要图标.我知道我可以使用重载TabHost.TabSpec.setIndicator(CharSequence label)方法省略该图标,如本问题所述.

但是图标所在的空间仍然保留,因此浪费了大量空间.在这个问题中已经提到了这一点.看来我不能只降低标签高度.我必须提供我自己ViewTabHost.TabSpec.setIndicator(View view)超载.

很好,但我想确保其余的样式(背景/着色)在所有设备上始终保持"android",就像我使用了默认的标签指示器一样.所以我不想提供自己的颜色.

我发现@android:color/tab_indicator_text并使用它TextView的文本颜色似乎按预期工作.但我不知道从哪里获得默认的tab-background-colors.我也发现了这种@android:style/Widget.TabWidget风格,但是它既不适用TextView也不适用于周围环境LinearLayout似乎有所帮助.

这是我的标签指示器视图xml文件,取自一些教程:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tabLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:padding="12dip" >

    <TextView
        android:id="@+id/tabText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@android:color/tab_indicator_text" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

如何获得"android默认"选项卡样式?


编辑:接下来,我尝试添加默认选项卡setIndicator(CharSequence),获取getBackground其指标视图的drawable,清除所有选项卡,添加我的自定义视图(见上文),然后将我检索到的drawable放入setBackground新指标.

结果看起来很正确,有点不对劲.首先,它们太高了,所以我什么都没得到.另一方面,所有选项卡的背景状态现在以某种方式链接(活动,突出显示,选择等).使用mutate()上绘制(S)没有帮助的.下一个技巧:我添加了三个默认选项卡,获取了所有背景,清除了它们,并给了我自己的三个选项卡,每个选项卡一个背景.

那么,这解决了第二个问题.他们的州不再联系在一起.但它们仍然太高了.所以我减少了TabWidget使用的高度updateViewLayout.这样可行,但在选项卡指示器的顶部留下变色条.

实际上,我最终会遇到与使用该TabHost.TabSpec.setIndicator(CharSequence label)方法时相同的情况.无论如何,所有这些黑客让我觉得很脏.是不是有一种优雅的方式来获得自定义视图上的默认android样式?

tabs android android-tabhost

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

如何同步Three.js和HTML/SVG坐标系(尤其是y轴)?

我正在将3D内容与Three.js结合使用HTML和SVG内容.Three.js CSSLoader可以很好地同步3D世界中HTML和SVG内容的放置.

但是SVG/HTML坐标系是"左撇子",而Three.js坐标系是"右撇子".这基本上意味着它们的y轴是相反的.在SVG/HTML中,当你走到屏幕上时,y/ top会上升,而当你走下屏幕时,Three.js会使用更标准的数学惯例y.

我必须不断地从一个转换到另一个,这很容易出错.我知道我不是第一个碰到这个(例如,看这里).有人想出一个通用的解决方案吗?这是我试过的:

  1. 做的一切Object3D.scale.y = -1.正如您可能怀疑的那样,事实证明这是一场灾难.它将所有内容都由内到外,甚至不会尝试将相机放在那里.

  2. 做的一切Object3D.rotate.x = Math.PI.这更有希望,但z轴不再与z-index的HTML概念一致.不过,这就是我现在正在使用的.

  3. 在HTML中,不要使用top,使用bottom.在SVG,做内部的一切<g transform="scale(1, -1)"><g transform="translate(0, imageHeight)">.但是,我觉得这对开发人员来说会更加混乱,而且imageHeight必须始终保持最新状态,这是另一个负担.

有没有人想出更好的东西?也许是图书馆来帮助这个?

html javascript svg coordinate-systems three.js

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

Coq中一致的套装配方?

我是Coq的新手,并试图根据我的研究开发一个框架.我的工作非常沉重,而且由于Coq似乎对待集合而我编码很困难.

TypeSet,他们称之为"排序",我可以用它们来定义一个新的集合:

Variable X: Type.
Run Code Online (Sandbox Code Playgroud)

然后有一个库编码(子)设置为' Ensembles ',它们是从一些Type到另一个的函数Prop.换句话说,它们是对a的谓词Type:

Variable Y: Ensemble X.
Run Code Online (Sandbox Code Playgroud)

Ensemble感觉更像是适当的数学集合.此外,它们是由许多其他图书馆建立的.我已经尝试过关注它们:定义一个通用集U: Set,然后将自己限制在(子)EnsembleU.但不是.Ensembles不能用作其他变量的类型,也不能用于定义新的子集:

Variable y: Y.           (* Error *)
Variable Z: Ensemble Y.  (* Error *)
Run Code Online (Sandbox Code Playgroud)

现在,我知道有几种方法可以解决这个问题.问题" 子集参数 "提供了两个.两者都使用强制.第一个坚持Sets.第二个基本上使用Ensembles(虽然不是名字).但两者都需要相当多的机器才能完成如此简单的事情.

问题:一致(优雅)处理集的推荐方法是什么?

示例:以下是我想要做的示例:假设设置DD.定义一对dm =(D,<),其中DDD的有限子集,而<D上的严格偏序.

我敢肯定,通过强制修改或其他结构,我可以完成它; 但不是特别易读; 并没有很好的直觉,如何进一步操纵结构.例如,以下类型检查:

Record OrderedSet {DD: Set} : Type := …
Run Code Online (Sandbox Code Playgroud)

set subset coq

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

重叠的兄弟元素之间的条件鼠标事件传递

是否有标准的Javascript技术或库来管理不相关的重叠HTML元素之间的条件鼠标事件传递?

例如,我在一堆HTML元素前面有一个部分透明的WebGL画布(由Three.js管理)(由Thee.js CSS3渲染器管理,但这不应该是相关的).那些HTML元素已经注册了mouseover和mouseout事件.我希望3D对象漂浮在这些元素的前面以阻止鼠标事件.

我已经知道如何使用光线施法器来确定鼠标是否在3D对象上.我不知道的是当3D对象不在其间时,如何允许鼠标事件将画布"传递"到底层HTML元素.

在此输入图像描述

我已经阅读了有关遍历DOM树的解决方案,直到找到鼠标下方的元素.但这似乎过于复杂和缓慢.如果可能的话,我想做的就是假装画布暂时不存在,以便事件可以自然地通过.

为了不重新发明轮子,如果已经有了这个库,那将会很棒.

html javascript mouseover event-passthrough

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