Как правильно использовать jquery в веб-части SharePoint - jquery не всегда срабатывает

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

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

Кевин

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

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

Код моей веб-части редактора содержимого выглядит так:

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

person Community    schedule 06.06.2009    source источник


Ответы (4)


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

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

person Alex Angas    schedule 08.06.2009
comment
В итоге я создал функцию, используя делегатный элемент управления AdditionalPageHead. Совершенно иначе, чем я представлял, что мне нужно это сделать. Я сильно опирался на этот сайт: weblogs.asp.net/jan/archive/2008/11/20/. Оно работает! Спасибо, Алекс. - person ; 13.06.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> разницу, тогда она работает.

Я удивлен!

person Devubha Manek    schedule 28.12.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

person Jeroen Ritmeijer    schedule 31.07.2009

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

<SharePoint:ScriptLink ID="SPScriptLink" runat="server" LoadAfterUI="true" Localizable="false" Name="sp.js">
</SharePoint:ScriptLink>
person Paul Stubbs    schedule 21.06.2010