为什么用jQuery组件调用函数会重新加载xhtml页面
Why does a function call with jQuery components reload the xhtml page?
我正在使用JSF、Primefaces和Bootsfaces。我正在开发一个导航栏,我必须在导航栏中创建一个下拉菜单,但我在实现b:dropmenu
时遇到了问题,我使用了另一个解决方案。
我的问题是,当我点击Nombre de usuario
时,如果我调用mostrarOpcionesUsuario()
,页面会重新加载,但如果我将mostrarOpcionesUsuario();
替换为alert('hello!');
,系统会显示alert
,并且不会刷新页面。我需要在不刷新页面的情况下调用mostrarOpcionesUsuario()
。
这是我的代码:
XHTML:
<b:navbar>
<b:navbarLinks>
<b:navLink onmousedown= "mostrarOpcionesUsuario(); return false;">
<div>
<ul>
<li>
<div>
<span>
Nombre de usuario
</span>
</div>
<ul class = "ulOpciones">
<li>Web Design</li>
<li>Web Development</li>
<li>Illustrations</li>
</ul>
</li>
</ul>
</div>
</b:navLink>
</b:navbarLinks>
</b:navBar>
JavaScript:
function mostrarOpcionesUsuario() {
$(".ulOpciones").css('visibility', function (i, v) {
if (v == 'hidden') {
$(".ulOpciones").css({'visibility': 'visible'});
} else {
$(".ulOpciones").css({'visibility': 'hidden'});
}
});
}
如果我把alert
放在mostrarOpcionesUsuario()
中,页面不会重新加载,但使用以前的mostrarOpcionesUsuario
实现,页面会重新加载。
请帮帮我!
谢谢!
我找到了解决方案:
<b:navLink href="javascript:mostrarOpcionesUsuario()">
好吧,您自己已经回答了您的问题:BootsFaces <b:navLink>
有几个不同的选项来定义单击时会发生什么。其中之一是href
属性,该属性反过来允许您通过简单地在javascript:
之前调用JavaScript。
另一个可能更直观的解决方案是使用onclick
处理程序而不是onmousedown
处理程序。这也起到了作用:
<b:navLink onclick="mostrarOpcionesUsuario(); return false;">
相关文章:
- 如何在从浏览缓存加载页面时执行javascript
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 标记的实时更新,无需加载页面谷歌地图API V3
- Javascript/Jquery/PHP加载页面-如何
- 加载页面时更改html页面的位置
- 重新加载页面时Javascript变量发生变化
- 通过浏览器加载页面时触发加载脚本(js或jQuery)'s”;返回“;作用
- $(select).selectmenu('打开')不'如果使用ajax加载页面,则不起作用
- 单击同一链接时,使Iron Router重新加载页面
- 正在尝试制作一个基本加载页面
- 强制用户重新加载页面
- HtmlUnit无法在youtube上完全加载页面
- PhantomJS并没有在每次加载页面时进行所有AJAX调用
- 任何人都知道IE7设置或更新/补丁,它可以防止IE因为jquery错误而无法加载页面
- 记住<选择>重新加载页面
- 防止用户在jQuery Mobile中ajax加载页面时单击其他位置
- 动态生成的html按钮无法加载页面
- 如何使用特定的javascript函数创建一个url,以便在加载页面时运行
- 在Chrome中重新加载页面后清除表单输入值
- 通过AJAX加载页面并执行javascript和CSS