2009-06-06 24 views
5

Tôi đang học cách sử dụng jquery với SharePoint. Ví dụ của tôi vẽ một hộp màu đỏ bên trong phần Web Trình soạn thảo nội dung khi một liên kết được chọn. Mã của tôi hoạt động khi trang SharePoint ở chế độ chỉnh sửa nhưng không phải sau khi tôi đã rời trang và được trả về ở chế độ không chỉnh sửa. Các chức năng jquery không cháy vì một lý do nào đó ... Tôi thiếu một cái gì đó đơn giản nhưng không chắc chắn những gì.Cách sử dụng chính xác jquery trong SharePoint Web Part - jquery không phải lúc nào cũng cháy

Cảm ơn bạn đã được trợ giúp.

Kevin

trang chủ của tôi cho các trang web kết nối đến tập tin jquery-1.3.2.min.js theo cách này:

<SharePoint:ScriptLink language="javascript" name="jquery-1.3.2.min.js" 
Defer="true" runat="server"/> 

Nội dung biên tập Web Part Mã của tôi trông như thế này:

<style type="text/css"> 
#box 
{ 
    background: red; 
    width: 300px; 
    height: 300px; 
    display: none; 
} 
</style> 


<script type ="text/javascript"> 
    $(function() { 
     $('a').click(function() { 
      $('#box').slideDown(2000); 
     }); 
    }) 
</script> 

<div id="box"> 
<h1>This is text in the box</h1> 
</div> 
<a href="#">Display Box</a><br /> 

Trả lời

3

Kiểm tra HTML được hiển thị để kiểm soát ScriptLink và xem liệu bạn có thể duyệt đến vị trí được cung cấp bởi thẻ <script> hay không. Điều này sẽ cung cấp cho bạn một số ý tưởng về những gì đang xảy ra.

Ngoài ra, hãy xem this question có chứa các tùy chọn để thêm jQuery vào SharePoint. (Tuyên bố từ chối trách nhiệm: một trong những câu trả lời là của tôi và phương pháp tôi hiện đang sử dụng.)

+1

Tôi đã kết thúc việc tạo "Tính năng" bằng cách sử dụng "Kiểm soát ủy quyền bổ sungPageHead". Hoàn toàn khác với cách tôi tưởng tượng tôi sẽ cần phải làm điều đó. Tôi Dựa vào trang web này: http://weblogs.asp.net/jan/archive/2008/11/20/sharepoint-2007-and-jquery-1.aspx. Nó hoạt động! Cảm ơn Alex. –

2

Vấn đề chính với mã JavaScript không bao gồm kích hoạt khi trang được tải là do toàn bộ trang có thể chưa tải xong và do đó DOM nội bộ có thể chưa được xây dựng hoàn chỉnh.

Cách tốt nhất để khắc phục điều này là móc mã của bạn vào sự kiện tải hoặc sẵn sàng.

Ví dụ

<script language="javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script> 

<script language="javascript"> 
function doSomething() 
{ 
    // Your code goes here 
} 

jQuery.event.add(window, "ready", doSomething); 
</script> 

Đối với ví dụ chi tiết về cách sử dụng này trong SharePoint, xem http://www.muhimbi.com/blog/2009/07/massage-sharepoint-into-submission.htmlhttp://www.muhimbi.com/blog/2009/07/automatically-add-search-as-you-type-to.html

7

Gần đây tôi đã gặp phải một vấn đề tôi nghĩ rằng nó có thể giúp đỡ một ai đó.

Trong SharePoint thẻ đầu nếu bạn đặt thẻ kịch bản như

<script language="javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"/> 

sau đó jQuery không hoạt động nhưng nếu bạn đặt như

<script language="javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script> 

Thấy sự khác biệt </script> sau đó nó làm việc.

Tôi ngạc nhiên!

2

Tôi nghĩ đó là vấn đề về thời gian. Thử cái này. Thêm LoadAfterUI = "true"

<SharePoint:ScriptLink ID="SPScriptLink" runat="server" LoadAfterUI="true" Localizable="false" Name="sp.js"> 
</SharePoint:ScriptLink> 
Các vấn đề liên quan