我有一个小"浮动工具箱" - 一个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) 我在我的redux商店中存储了一个ref,并使用mapStateToProps公开了需要访问它的组件的ref.
存储的ref看起来像:
ref={node => this.myRefToBePutInReduxGlobalStore = node}
Run Code Online (Sandbox Code Playgroud)
这个参考的正确propType是什么?
新文档中的(不清楚)示例:
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 ...
我想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.
你看到任何更清洁的解决方案?
谢谢 !
我使用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) 假设我正在使用firebase作为评论系统,我想检索给定主题的评论,但是在一个主题中有很多评论我不想一次全部检索它们.我还希望最新的评论显示在最上面.
似乎以相反的顺序显示firebase记录的唯一方法是将它们全部检索,然后反过来迭代它们.
这可能会对大型数据集变得非常笨重,特别是对于移动客户端.
有没有更好的方法?从Firebase查询分页数据的升级或降序的一般和首选解决方案是什么?
背景
我有一个网络应用程序,使其用户可以在Facebook上分享单个项目(帖子).我建立了一个Facebook应用程序,以获得一个API密钥来使用Javascript SDK.它工作得很好,我在Facebook App Insights中看到了共享统计数据.
人们在Facebook上分享的项目是照片和视频,我想跟踪总观看次数,包括Facebok股票.可能吗 ?
我尝试了什么
/{post_url}
/{object_id}/insights/post_impressions
(*)文档"Only page posts"为该指标指定,所以我想这毕竟是不可能的,因为这些帖子不在我的应用页面提要上.
解决方法
average_views = shares x A + comments x B + likes x C但看起来非常近似,我不知道A,B和C最合适的值.谢谢你的帮助
我收到以下错误:
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中初始化?
我最近将一个应用程序迁移到了我喜欢的 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)
问题
data-mui-test从生成的 npm 模块代码中删除了 prop?我的应用包含一个表单,如下图所示:

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

我希望在按下按钮选择位置时打开抽屉.
我的代码是
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) javascript ×4
firebase ×3
android ×2
angularjs ×1
drawer ×1
geolocation ×1
jquery ×1
material-ui ×1
object ×1
onclick ×1
pagination ×1
python ×1
reactjs ×1
scroll ×1