防止按钮事件被触发
问题描述:
我知道有Sharepoint门户,但在我看来,这个问题更多地涉及到javascript和跨浏览,而不是Sharepoint。防止按钮事件被触发
我在Sharepoint中有一个自定义功能区按钮,它应该启动我库中特定元素的工作流程。我想添加一个javascript/jquery检查来验证一些数据,只有在一切正常的情况下,按钮事件才会启动。
<a unselectable="on" href="javascript:;" onclick="return false;" class="ms-cui-ctl-large " mscui:controltype="Button" role="button" id="AddNewButton-Large"><span unselectable="on" class="ms-cui-ctl-largeIconContainer"><span unselectable="on" class=" ms-cui-img-32by32 ms-cui-img-cont-float"><img unselectable="on" alt="Neue Testmappe erstellen" src="http://contoso:43265/sites/contoso/_layouts/Images/docset_captureversion_32.png" style="left: 0px;"></span></span><span unselectable="on" class="ms-cui-ctl-largelabel">Create Element<br>erstellen</span></a>
试了一下,但事件总是发射。还尝试了.unbind()或.off()方法和.preventDefault()。真的不知道如何防止事件被解雇。
是否有任何特殊的跨浏览器事件在尝试阻止事件发生时应该注意?
我可以在我的“a”元素上看到开发人员工具中的事件。当我删除事件时,一切正常(或不)。但是以编程方式执行此操作是不可能的。
答
使用jQuery的preventdefault
如果此方法被调用时,事件的默认动作不会被触发。
$("a").click(function(event) {
event.preventDefault();
//and now do stuff like for example:
$('body').hide();
});
答
在你的onclick属性,使用函数:
function(event){ event.preventDefault(); }
作为替代方案,你可以写一些JavaScript,这将阻止它:
使用jQuery:
$("a").on("click", function(event){
event.preventDefault();
//any function that you need ...
});
不幸的是,这是行不通的,仍然发射我的事件 –
嗯。那么我认为你已经尝试了一切(取消绑定,关闭,返回false),也许sharepoint阻止这种类型的代码? –
也许有一些事件绑定到元素或者它们被触发的方式与正常模式不同? –