SharePoint debug : launchPoint given is already associated with a callout
2014-10-25 00:23
357 查看
今天在写SharePoint 2013 callout的时候,发现浏览器报了一个错误:calloutManager: launchPoint given is already associated with a callout
代码很简单:
错误信息很明显,应该是我重复向一个div绑定callout引起的,最简单的解决办法是try catch捕获这个异常:
然后我查看了一下CalloutManager的代码,发现可以使用这个方法判断一个div是否已经绑定了一个callout:
除此之外,CalloutManager其实已经提供了一个方法处理重复绑定的问题,这个方法是createNewIfNecessary,这个方法会首先使用getFromLaunchPointIfExists方法判断div上是否已经绑定了callout,如果已经绑定,就不会再次绑定了,所以正确的代码是使用createNewIfNecessary而不是createNew:
这样就不会出现异常信息了。
代码很简单:
var calloutElement = document.getElementById(divId); var calloutOptions = new CalloutOptions(); calloutOptions.ID = 'calloutid'; calloutOptions.launchPoint = calloutElement; calloutOptions.beakOrientation = 'leftRight'; calloutOptions.content = 'This is Callout Description'; calloutOptions.title = 'This is Callout Title'; CalloutManager.createNew(calloutOptions);
错误信息很明显,应该是我重复向一个div绑定callout引起的,最简单的解决办法是try catch捕获这个异常:
try { CalloutManager.createNew(calloutOptions); } catch(e) {}
然后我查看了一下CalloutManager的代码,发现可以使用这个方法判断一个div是否已经绑定了一个callout:
var callout = CalloutManager.getFromLaunchPointIfExists(launchPoint);方法getFromLaunchPointIfExists的参数launchPoint就是div对象,如果返回值callout不为空,就说明这个div已经绑定了callout了。
除此之外,CalloutManager其实已经提供了一个方法处理重复绑定的问题,这个方法是createNewIfNecessary,这个方法会首先使用getFromLaunchPointIfExists方法判断div上是否已经绑定了callout,如果已经绑定,就不会再次绑定了,所以正确的代码是使用createNewIfNecessary而不是createNew:
var calloutElement = document.getElementById(divId); var calloutOptions = new CalloutOptions(); calloutOptions.ID = 'Calloutid'; calloutOptions.launchPoint = calloutElement; calloutOptions.beakOrientation = 'leftRight'; calloutOptions.content = 'This is Callout Description'; calloutOptions.title = 'This is Callout Title'; CalloutManager.createNewIfNecessary(calloutOptions);
这样就不会出现异常信息了。
相关文章推荐
- Get the item a SharePoint workflow task is associated with
- 【Tomcat、Java Web】This kind of launch is associated with the Debug perspective
- There is already an open DataReader associated with this Connection which must be closed first
- C#数据库操作错误:There is already an open DataReader associated with this Connection which must be closed..
- C# 数据库 There is already an open DataReader associated with this Command which must b
- There is already an open DataReader associated with this Command which must be closed first
- SharePoint Designer Can not perform this operation.The file is no longer checked out or has been del
- There is already an open DataReader associated with this Connection which must be closed first
- Sharepoint BDC错误处理:"No finders available in the View Group associated with the SpecificFinder ……"
- There is already an open DataReader associated with this Command which must be closed first." exception in Entity Framework
- SharePoint Debug - This file is not a valid presentation file or contains multiple slides...
- 解决"There is already an open DataReader associated with this Command which must be closed first." exception in EF 中
- There is already an open DataReader associated with this Connection which must be closed first
- SharePoint Designer Check In and Check Out Error – Cannot perform this operation.The file is no longer check out or has been del
- Customizing the Quick Launch menu: Adding fly-out menus to SharePoint navigation
- error 'there is already an open datareader associated with this command which must be closed first'
- SharePoint debug - "The Business Data Connectivity Metadata Store is currently unavailable"
- IDEA错误:Failed to start end point associated with ProtocolHandler [http-nio-9999] java.net.BindException: Address already in use: bind
- There is already an open DataReader associated with this Connection which must be closed first
- 一例发生在cshtml页面中的There is already an open DataReader associated with this Command which must be closed