2017-03-16 178 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

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

相關問題