Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我怎样才能禁用";“向上”;通过CSS的箭头_Javascript_Css - Fatal编程技术网

Javascript 我怎样才能禁用";“向上”;通过CSS的箭头

Javascript 我怎样才能禁用";“向上”;通过CSS的箭头,javascript,css,Javascript,Css,我甚至不确定这是否可能。我有一个使用javascript和css构建的UI,用户界面使用按键导航。Css用于每个客户端都会更改的布局,如“皮肤”。Javascript控制函数并监视用户按键 设置有两个菜单,一个较低的菜单和一个较高的菜单。当你加载它时,下一个被聚焦,你可以使用左箭头或右箭头在菜单项之间移动 在正常情况下,您会按“向上”键以获得较高的菜单,但是这一个客户端根本不需要此菜单 问题是我们不能简单地编辑javascript来阻止它,因为所有客户端都使用相同的javascript,只会根据

我甚至不确定这是否可能。我有一个使用javascript和css构建的UI,用户界面使用按键导航。Css用于每个客户端都会更改的布局,如“皮肤”。Javascript控制函数并监视用户按键

设置有两个菜单,一个较低的菜单和一个较高的菜单。当你加载它时,下一个被聚焦,你可以使用左箭头或右箭头在菜单项之间移动

在正常情况下,您会按“向上”键以获得较高的菜单,但是这一个客户端根本不需要此菜单

问题是我们不能简单地编辑javascript来阻止它,因为所有客户端都使用相同的javascript,只会根据选择的客户端加载不同的css

现在我隐藏了上面的菜单,但问题是javascript仍然允许你按下up键,但是现在因为上面的菜单不在那里,你失去了焦点,什么都没有突出显示。最终用户不知道,如果他们不小心按下按钮,为什么或者如何失去焦点。(因为他们不知道顶部菜单在哪里有不同的设置,他们没有意识到他们应该按下,他们只知道当他们按下左/右时似乎什么都没有发生)

我想做的是,在css中,以某种方式防止用户按下按钮。因为我们不能仅仅改变javascript

这可能吗?还是我修改javascript的唯一解决方案

蒂娅

感谢所有提供建议的人,我只是想澄清一下,我们将发布一个新版本,其中包含一个功能,用于检查客户是否需要此其他菜单,如果不需要,则禁用“向上”按钮,但这将需要新版本的软件和全面的质量保证。只是想在同一时间快速破解这一个客户端….:)


我们的最终解决方案是在数据库中有一个布尔字段,如果它是真的,javascript将忽略向上键,如果为假,则正常操作。

更改代码,使其仅在元素不存在时按向上箭头键时才起作用

例如,使用
class=“noupkey”
添加
p
,然后停止触发事件,如:

if($('.nokeyup').length === 0) {
//Do normal behaviour
} 

更改代码,使其仅在元素不存在时按向上箭头键时起作用

例如,使用
class=“noupkey”
添加
p
,然后停止触发事件,如:

if($('.nokeyup').length === 0) {
//Do normal behaviour
} 

不幸的是,没有通过css禁用组件的正确方法,因为这种类型的功能是针对javascript的

我所接触过的大多数程序员的理念是,您应该允许最终用户决定是否要使用新功能

我的意思是,你应该在应用程序中留下一个选项,让用户自己禁用组件。通过这种方式,您可以为所有用户提供相同的javascript集,并且仍然以正确的方式禁用任何组件。这样做的真正好处是,您不再需要处理此问题,支持人员可以简单地引导任何客户完成重新创建所需功能的操作

但是,此解决方案的大部分可能对您不可用。我知道改变你的工作习惯并不容易


下面是一些可能更有用的建议,其中一些建议可能适用于任何组件,包括菜单。

不幸的是,没有通过css禁用组件的正确方法,因为这种功能是针对javascript的

我所接触过的大多数程序员的理念是,您应该允许最终用户决定是否要使用新功能

我的意思是,你应该在应用程序中留下一个选项,让用户自己禁用组件。通过这种方式,您可以为所有用户提供相同的javascript集,并且仍然以正确的方式禁用任何组件。这样做的真正好处是,您不再需要处理此问题,支持人员可以简单地引导任何客户完成重新创建所需功能的操作

但是,此解决方案的大部分可能对您不可用。我知道改变你的工作习惯并不容易


这里有一些可能更有用的建议,其中一些建议可能适用于任何组件,包括菜单。

事实上,这是一个非常奇怪的解决方案,但可以用一些棘手的解决方案来完成

制作一个具有更多z索引的透明Div,绝对位置位于向上按钮上方的主体级别,对于其他应用程序,将指针事件Css属性应用于none,以便在下面的Div上执行鼠标事件

然后,对于要禁用该控件的情况,不要将指针事件提供给最前面的div,它将对鼠标事件禁用


注意:IE中的指针事件存在一些问题。

事实上,这是一个非常奇怪的解决方案,但可以用一些棘手的解决方案来完成

制作一个具有更多z索引的透明Div,绝对位置位于向上按钮上方的主体级别,对于其他应用程序,将指针事件Css属性应用于none,以便在下面的Div上执行鼠标事件

然后,对于要禁用该控件的情况,不要将指针事件提供给最前面的div,它将对鼠标事件禁用


注意:IE中的指针事件存在一些问题。

如@SLaks所说,更改Javascript以响应CSS类的存在(或元素的可见性),因为“上菜单”不在那里,所以只使用“上菜单”如果元素被找到,则为功能性。@BryanH-我认为问题的性质排除了示例代码。@Cyborgx37我同意,我理解这个概念。既然这不是一个bug,我们不妨假设还没有代码。正如@SLaks所说,更改Javascript以对CSS类的存在(或元素的可见性)作出反应,因为“上菜单”不会是