小编Pan*_*olo的帖子

当内部元素滚动位置到达顶部/底部时,防止滚动父元素?

我有一个小"浮动工具箱" - 一个div与position:fixed; overflow:auto.工作得很好.

但是当在该框内滚动(使用鼠标滚轮)并到达底部或顶部时,父元素"接管""滚动请求":工具框后面的文档滚动.
- 哪个很烦人而不是用户"要求".

我正在使用jQuery并认为我可以使用event.stoppropagation()来阻止此行为:
$("#toolBox").scroll( function(event){ event.stoppropagation() });

它确实进入了函数,但仍然无论如何传播(文档滚动)
- 在SO(和Google)上搜索这个主题非常困难,所以我不得不问:
如何防止滚动事件的传播/冒泡?

编辑:
工作解决方案感谢amustill(以及Brandon Aaron的mousewheel-plugin:https:
//github.com/brandonaaron/jquery-mousewheel/raw/master/jquery.mousewheel.js

$(".ToolPage").bind('mousewheel', function(e, d)  
    var t = $(this);
    if (d > 0 && t.scrollTop() === 0) {
        e.preventDefault();
    }
    else {
        if (d < 0 && (t.scrollTop() == t.get(0).scrollHeight - t.innerHeight())) {
            e.preventDefault();
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

javascript jquery scroll event-bubbling event-propagation

190
推荐指数
12
解决办法
13万
查看次数

React中ref的正确proptype是什么?

我在我的redux商店中存储了一个ref,并使用mapStateToProps公开了需要访问它的组件的ref.

存储的ref看起来像:

ref={node => this.myRefToBePutInReduxGlobalStore = node}
Run Code Online (Sandbox Code Playgroud)

这个参考的正确propType是什么?

reactjs

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

如何创建Firebase web user.reauthenticate()方法所需的"凭证"对象?

新文档中的(不清楚)示例:

var user = firebase.auth().currentUser;
var credential;
// Prompt the user to re-provide their sign-in credentials
user.reauthenticateWithCredential(credential).then(function() {
Run Code Online (Sandbox Code Playgroud)

使用v3 Firebase客户端,我应该如何创建此credential对象?

我试过了:

  • reauthenticateWithCredential(email, password) (比如登录方法)
  • reauthenticateWithCredential({ email, password }) (文档仅提到一个参数)

没运气 :(

PS:我不计算在新文档中搜索相关信息所浪费的时间......我非常想念那些神话般的firebase.com文档,但想切换到v3 for firebase.storage ...

javascript firebase firebase-authentication

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

检查AngularJS模板中的对象大小,做错了吗?

我想myObject在AngularJS模板中迭代

这不起作用:

<ul ng-if="Object.keys(myObject).length">
    <li ng-repeat="(key, val) in myObject">
        Value at key {{ key }} is: {{ val }}
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

什么都没有出现,我怀疑是因为$scope.Object没有定义.

相反,我这样做了:

在控制器/指令中:

$scope.sizeOf = function(obj) {
    return Object.keys(obj).length;
};
Run Code Online (Sandbox Code Playgroud)

在模板中:

<ul ng-if="sizeOf(myObject)">
    <li ng-repeat="(key, val) in myObject">
        Value at key {{ key }} is: {{ val }}
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我不喜欢这个解决方案,因为在每个控制器或指令中都有这个功能的重复$scope.

你看到任何更清洁的解决方案?

谢谢 !

javascript object angularjs angularjs-scope

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

navigator.geolocation.getCurrentPosition始终获取错误代码3:超时已过期

我使用cordova-2.0.0和android模拟器google api level16.

每当我跑步,navigator.geolocation.getCurrentPosition我总是得到error3.我的代码简介如下:

     // Wait for Cordova to load
            document.addEventListener("deviceready", onDeviceReady, false);

            // Cordova is ready
            function onDeviceReady() {
                console.log("Entering index.html.onDeviceReady");
                var networkState = navigator.network.connection.type;
                getPosition(networkState);
}

function getPosition(networkState) {
    console.log("Entering getPosition function");
    console.log("networkState is: " + networkState);
    if (networkState !== null) {
        navigator.geolocation.getCurrentPosition(onSuccess, onError, {
            maximumAge : Infinity,
            timeout : 5000,
            enableHighAccuracy : true
        });
    } else {
        alert('Please check your network connection and try again.');
    }
    console.log("Leaving getPosition function");
}

// function for …
Run Code Online (Sandbox Code Playgroud)

android geolocation

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

如何在Firebase中按升序或降序检索分页子项?

假设我正在使用firebase作为评论系统,我想检索给定主题的评论,但是在一个主题中有很多评论我不想一次全部检索它们.我还希望最新的评论显示在最上面.

似乎以相反的顺序显示firebase记录的唯一方法是将它们全部检索,然后反过来迭代它们.

这可能会对大型数据集变得非常笨重,特别是对于移动客户端.

有没有更好的方法?从Firebase查询分页数据的升级或降序的一般和首选解决方案是什么?

javascript pagination firebase

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

如何衡量我的应用Facebook分享流量?(非传统)

背景

我有一个网络应用程序,使其用户可以在Facebook上分享单个项目(帖子).我建立了一个Facebook应用程序,以获得一个API密钥来使用Javascript SDK.它工作得很好,我在Facebook App Insights中看到了共享统计数据.

人们在Facebook上分享的项目是照片和视频,我想跟踪总观看次数,包括Facebok股票.可能吗 ?

我尝试了什么

  • 图API端点 /{post_url}
    • 只给予股票,评论和喜欢计数
  • 图API端点 /{object_id}/insights/post_impressions
    • 不好,它说对象不存在*

(*)文档"Only page posts"为该指标指定,所以我想这毕竟是不可能的,因为这些帖子不在我的应用页面提要上.

解决方法

  • 对于视频,我想我可以观看访问日志?
  • 关于图像,似乎它们被缓存在Facebook服务器中,对吧?或者,只要有帖子视图,图像文件就会在我的服务器上被点击?任何可能的方法来获取图像的缓存invalider,以便它们在每个视图中被击中?
  • 根据其他指标推断平均视图数.例如,average_views = shares x A + comments x B + likes x C但看起来非常近似,我不知道A,B和C最合适的值.

谢谢你的帮助

facebook-graph-api facebook-insights facebook-share

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

检查Firebase应用程序是否已在python中初始化

我收到以下错误:

ValueError: The default Firebase app already exists. This means you called initialize_app() more than once without providing an app name as the second argument. In most cases you only need to call initialize_app() once. But if you do want to initialize multiple apps, pass a second argument to initialize_app() to give each app a unique name.

如何检查默认的Firebase应用程序是否已在python中初始化?

python firebase

8
推荐指数
4
解决办法
5737
查看次数

Jest &amp; material-ui:如何测试特定图标的存在?

我最近将一个应用程序迁移到了我喜欢的 mui v4。

还完成了更新我们使用 jest/enzyme 运行的测试套件。例如,我现在赞成mount而不是shallow.

一个问题是我找不到测试图标存在的方法。

在撰写本文时,我正在使用所有最新版本的 material-ui、react 和工具,例如 jest/enzyme 等


在 MUI 源代码中,我在规范文件中看到了这样的内容:

wrapper.find('svg[data-mui-test="KeyboardArrowLeftIcon"]'
Run Code Online (Sandbox Code Playgroud)

这是在createSvgIcon源中这个道具是如何声明的:

<SvgIcon {...props} data-mui-test={`${displayName}Icon`} ref={ref}>
Run Code Online (Sandbox Code Playgroud)

但是,我data-mui-test在我自己的node_modules文件中找不到对该道具的任何引用@material-ui/icons/utils/createSvgIcon.js

<SvgIcon {...props} data-mui-test={`${displayName}Icon`} ref={ref}>
Run Code Online (Sandbox Code Playgroud)

而且,事实上,wrapper.debug()在测试中表明 DOM 中不存在该道具:

[...]
<svg 
  className="MuiSvgIcon-root" 
  focusable="false" 
  viewBox="0 0 24 24" 
  color={[undefined]} 
  aria-hidden="true" 
  role="presentation">
[...]
Run Code Online (Sandbox Code Playgroud)

问题

  1. 为什么data-mui-test从生成的 npm 模块代码中删除了 prop?
  2. 这仍然是测试图标存在的正确方法吗?(正如 mui 团队成员所建议的那样

material-ui

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

如何为android中的片段中的按钮设置onclick监听器

我的应用包含一个表单,如下图所示:

注册截图

当我单击菜单选项按钮时,抽屉将打开,如下图所示: 选择截图

我希望在按下按钮选择位置时打开抽屉.

我的代码是

RegisterBlood.java

 ...
public class RegisterBlood extends Activity implements OnItemClickListener {
    DrawerLayout dLayout, dLayout2;
    ListView dList, dList2;
    ArrayAdapter<String> adapter, adapter2;
    String[] state_data2;
    String city = "", state = "";
    Button location;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.selectlocation);
        Bundle args = new Bundle();

        Fragment detail = new RegisterBloodFragment();
        detail.setArguments(args);
        FragmentManager fragmentManager = getFragmentManager();
        fragmentManager.beginTransaction().replace(R.id.content_frame, detail)
                .commit();

    ...
        dLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        dList = (ListView) findViewById(R.id.left_drawer);
        adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, state_data);
        dList.setAdapter(adapter);
        dList.setSelector(android.R.color.holo_blue_dark);
        // …
Run Code Online (Sandbox Code Playgroud)

android onclick drawer android-fragments

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