2017-03-16 132 views
0

我知道有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”元素上看到开发人员工具中的事件。当我删除事件时,一切正常(或不)。但是以编程方式执行此操作是不可能的。

回答

2

使用jQuery的preventdefault

如果此方法被调用时,事件的默认动作不会被触发。

$("a").click(function(event) { 
    event.preventDefault(); 
    //and now do stuff like for example: 
    $('body').hide(); 

}); 
+0

不幸的是,这是行不通的,仍然发射我的事件 –

+0

嗯。那么我认为你已经尝试了一切(取消绑定,关闭,返回false),也许sharepoint阻止这种类型的代码? –

+0

也许有一些事件绑定到元素或者它们被触发的方式与正常模式不同? –

3

在你的onclick属性,使用函数:

function(event){ event.preventDefault(); } 

作为替代方案,你可以写一些JavaScript,这将阻止它:

使用jQuery:

$("a").on("click", function(event){ 
    event.preventDefault(); 
    //any function that you need ... 
}); 
+0

不幸的是,这是行不通的,仍然触发我的事件 –

+0

你确定这不是事件触发的跨度吗? – margarita

+0

其实我不是。我如何知道? –