草庐IT

javascript - 设置溢出-y : hidden; causes the page to jump to the top in Firefox

我有一些javascript可以处理在我的网站上打开模式弹出窗口,它还设置了overflow-y上的属性(property)元素到hidden.在Chrome和IE中,这按预期工作-滚动条隐藏,模式弹出窗口后面的页面保持在相同的滚动位置。当弹出窗口关闭时,overflow-y设置为scroll并且页面处于与之前相同的状态和位置。但是在Firefox中,只要overflow-y更改为hidden页面滚动位置跳到最顶部,因此当弹出窗口关闭时,View对用户来说已经改变-不理想。问题可见onthisjsfiddle是否有针对此行为的解决方案? 最佳答案

javascript - D3 : Is it possible to zoom+pan one axis and only pan the other?

我有x轴的缩放和平移功能,但我想为y轴添加平移功能。我尝试使用d3.behavior.zoom和d3.event.translate[1]来获取y平移值并使用它,但是当缩放发生时平移值会发生变化,而单击拖动确实会平移y轴,缩放也会平移y轴(以一种非直观的方式)。我还尝试使用两个d3.behavior.zoom实例,一个用于x轴,一个用于y轴,但只有最后添加的一个在缩放事件中被调用。这是一个适用于在x方向缩放和平移的示例,我也想添加y平移(但不是y缩放):varx=d3.scale.linear().domain([0,800]).range([0,800]);vary=d3.scale

javascript - JS/J查询 : how to check whether dropdown has selected values?

我已经用谷歌搜索并尝试了很多方法来做到这一点,但到目前为止没有一个对我有用。我要找的东西很简单:我想知道下拉列表是否有选定的值。问题在于selectedIndex、:selected、val()等确实会针对以下情况返回结果:123234很明显,浏览器会显示这个下拉菜单,其中123选项被选中,但它会被选中只是因为没有其他选项,实际上这个下拉菜单没有选中的值,因为没有“selected”属性。所以基本上我试图找到如何区分上面的下拉菜单123234 最佳答案 varhasValue=($('select>[selected]').leng

javascript - 未捕获的语法错误 : Failed to execute 'postMessage' on 'Window' : Invalid target origin 'my_page' in a call to 'postMessage'

我有以下脚本父页面(pair_pixel_filter.php):window.addEventListener("message",function(e){$('#log').append("Receivedmessage:"+(e.data));},false);$('.photo-upload-btn').click(function(event){event.preventDefault();window.open($(this).attr("href"),"popupWindow","width=600,height=600,scrollbars=yes");});子页面$.

javascript - 类型错误 : Value can't be converted to a dictionary

我在Firefox中收到以下错误,但在Chrome中没有:TypeError:Valuecan'tbeconvertedtoadictionary单击定义为的链接时发生错误bla当scroll在我的页面中被定义为一个函数时。我尝试用谷歌搜索它,但没有找到任何结果。Firefox控制台告诉我错误出现在页面的第一行。这是空白的。有谁知道它可以是什么?Firefox控制台告诉我它在我页面的第0行,但是那里没有javascript。 最佳答案 问题是浏览器使用了我不小心覆盖的内置滚动功能。我更改了函数的名称并且一切正常:)

javascript - 为什么我在 IE : "The data area passed to a system call is too small"? 中收到此错误

我正在使用Javascript创建一个供下载的csv文件,它在除IE(我已经测试过8和10)之外的所有文件中都运行良好。在IE8中,当我单击创建和下载文件的按钮时,我收到一条错误消息,提示“传递给系统调用的数据区域太小”。在IE10中,当我单击该按钮时,它只会打开一个新选项卡,其中包含我在地址栏中创建的URL,但不会下载任何内容。知道这个错误是什么意思吗?我在按钮中有这段代码:varcsvContent="data:text/csv;charset=utf-8,";csvContent+=escape(myCSVvariable);varencodedUri=encodeURI(csv

javascript - Angular2 指令 : How to detect DOM changes

我想将Skrollr实现为Angular2属性指令。所以,格式可能是:但是,为了实现这一点,我需要能够检测包含标记(在本例中为)下方的子元素中DOM的变化,以便我可以调用skrollr.init()。刷新();并更新库以使用新内容。是否有一种我不知道的直接方法,或者我是否采用了错误的方法? 最佳答案 Angular没有为此目的提供一些内置的东西。您可以使用MutationObserver检测DOM变化。@Directive({selector:'[my-skrollr]',...})classMyComponent{construc

design-patterns - 主干 : Multiple views subscribing to a single collection's event? 这是一种不好的做法吗?

我有一个问题,我认为非常基本的问题但是:我只见过CollectionView和依赖于正在更新的集合的单一View的示例。如果您有多个View试图订阅一个集合事件,即重置、addOne、addAll等...关于做/不做这件事,我是否遗漏了一些要点?你有这方面的例子吗?这有意义吗?非常感谢任何信息varColl=Backbone.Collection.extend({model:SingleModel,url:'service',initialize:function(){console.log('collectioninited')}});varSingleModel=Backbone.

javascript - AngularJS 抛出未知提供者 : $scopeProvider <- $scope error when I try to use modules

我刚开始使用AngularJS以下代码在控制台中给出错误。未知提供者:$scopeProvidervarapp;(function(angular){app=angular.module('OrdersDashboard',[]);app.config(['$routeProvider',function($routeProvider){$routeProvider.when('/current/new',{templateUrl:'orders/partials/new_current',controller:'newActiveOrdersCtrl'}).otherwise({re

javascript - 安装 Angular Material, "Failed to instantiate module ngMaterial"即使我使用的是 angular 版本 1.3.0

这非常令人沮丧,我使用的是mean.jsyeoman生成的应用程序,但似乎无法启动和运行AngularMaterial。我读了另一个关于这个问题的stackoverflow问题AngularjswithmaterialdesignFailedtoinstantiatemodulengMaterial.所以我更新了我的bower.json文件并运行了bowerupdate和bowerinstall。它仍然不起作用。在bower更新期间,bower给我这条消息Unabletofindasuitableversionforangular,pleasechooseone:,但我总是选择Angu