Обновить?Javascript после Jquery .live / .load - PullRequest
0 голосов
/ 04 января 2012

Я хотел загрузить некоторые фрагменты внешнего контента внутри div через меню.

Нашел "load" и "live", нашел туториал использовали его = успех! Кроме того, что явно указано в документации, он не загружает JavaScript.

Дело в том, что целевая страница уже загружает внутри заголовка тот же самый JavaScript, потому что Wordpress загружает его на каждой странице. На этой конкретной странице я использую плагин (галерею nextgen) только через вызов jQuery AJAX.

Итак, я считаю, что моя проблема в том, что мне как-то нужно предупредить / перезагрузить JavaScript, верно?

А как я могу это сделать?

<script type="text/javascript" charset="utf-8">
jQuery(document).ready(function(){  
    // ajax pagination
    jQuery('#naveg a').live('click', function(){ // if not using wp-page-numbers, change this to correct ID
        var link = jQuery(this).attr('href');
                    // #main is the ID of the outer div wrapping your posts
        jQuery('#fora').html('<div class="loading"><h2>Loading...</h2></div>');
                    // #entries is the ID of the inner div wrapping your posts
        jQuery('#fora').load(link+' #dentro')
    return false;   
    }); 
}); // end ready function
</script>

PS: Я заменил «вживую» на «вкл», но тоже не сработал.

Ответы [ 2 ]

0 голосов
/ 04 января 2012

Если вы хотите выполнить код Javascript, включенный в загруженную страницу (страницу, которую вы извлекаете с помощью .load ()), тогда вам нужно использовать параметр url без «суффиксного выражения селектора». См. Документацию jQuery для ( .load () ):

Примечание: При вызове .load () с использованием URL-адреса без выражения селектора с суффиксом содержимое передается в .html () до того, как сценарии будут удален. Это выполняет блоки скрипта до того, как они будут отброшены. Если Однако .load () вызывается с выражением селектора, добавленным к URL, сценарии удаляются до обновления DOM, вот почему они никогда не выполняются. Примером обоих случаев может быть видно ниже:

Здесь любой JavaScript, загруженный в #a как часть документа, будет успешно выполнить.

$('#a').load('article.html');

Однако в этом случае блоки скриптов в документе загружаются в #b удаляются перед выполнением:

$('#b').load('article.html #target');

Я думаю, что это ваша проблема (хотя у меня нет решения для вас, извините).

Предложение: Может быть, вы можете загрузить всю страницу (включая сценарии) и удалить (или скрыть) ненужные части?

Приветствие.

0 голосов
/ 04 января 2012

Я не уверен, что понимаю ... ваша команда load () выдаёт какой-то Javascript, который вы хотите выполнить? Я не уверен, что вы можете сделать это. Но если вам просто нужно вызвать JS после завершения load (), вы можете передать ему такую ​​функцию:

jQuery('#fora').load(link+' #dentro', function() {
    console.log("load completed");
    // JS code to be executed...
});
...