Как правильно использовать jquery в веб-части SharePoint - jquery не всегда срабатывает - PullRequest
5 голосов
/ 06 июня 2009

Я учусь использовать jquery с SharePoint. Мой пример рисует красное поле внутри веб-части редактора контента, когда выбрана ссылка. Мой код работает, когда страница SharePoint находится в режиме редактирования, но не после того, как я покинул страницу и вернулся в режиме без редактирования. Функция jquery не запускается по какой-то причине ... Я упускаю что-то простое, но не знаю, что.

Спасибо за любую помощь.

Kevin

Моя главная страница сайта подключается к файлу jquery-1.3.2.min.js следующим образом:

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

Код веб-части My Content Editor выглядит следующим образом:

<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 />

Ответы [ 4 ]

7 голосов
/ 28 декабря 2009

Недавно я столкнулся с проблемой, я думаю, что это может кому-то помочь.

В заголовке SharePoint, если вы поместите тег сценария, как

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

тогда jQuery не работает, но если вы разместите как

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

См. Разницу </script>, тогда она работает.

Я удивлен!

3 голосов
/ 08 июня 2009

Проверьте визуализированный HTML-код для элемента управления ScriptLink и посмотрите, можете ли вы найти местоположение, указанное тегом . Это должно дать вам представление о том, что происходит не так.

Кроме того, посмотрите на этот вопрос , который содержит параметры для добавления jQuery в SharePoint. (Отказ от ответственности: один из моих ответов и метод, который я использую в настоящее время.)

2 голосов
/ 22 июня 2010

Я думаю, что это проблема времени. Попробуй это. Добавьте LoadAfterUI = "true"

<SharePoint:ScriptLink ID="SPScriptLink" runat="server" LoadAfterUI="true" Localizable="false" Name="sp.js">
</SharePoint:ScriptLink>
2 голосов
/ 31 июля 2009

Основная проблема с кодом JavaScript, который не всегда срабатывает при загрузке страницы, заключается в том, что вся страница может не завершить загрузку и, следовательно, внутренняя DOM может быть еще не полностью построена.

Лучший способ исправить это - привязать ваш код к событию load или ready.

Например

<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>

Подробные примеры использования этого в SharePoint см. В http://www.muhimbi.com/blog/2009/07/massage-sharepoint-into-submission.html и http://www.muhimbi.com/blog/2009/07/automatically-add-search-as-you-type-to.html

.
...