jQuery вставка страницы в разделительные разделы JavaScript - PullRequest
1 голос
/ 23 ноября 2011

В моем index.php есть ajax-вызов jquery, который вставляет getposts.php в мой #content div.Это работает нормально .. Проблема в том, что в getposts.php есть некоторый javascript (больше jQuery), и хотя Chrome действительно выполняет код нормально, Firefox этого не делает.

Если я включаю javascript как файл (setchecked.js) firebug ищет setchecked.js_ = 1322020697832

Если я включаю JavaScript непосредственно в getposts.php, JavaScript полностью игнорируется (он даже не отображается в исходном коде)

Кто-нибудь знает, почему и как это исправить?

index.php

<script type="text/javascript" src="fetchposts.js"></script>
<div id="content"></div>

fetchposts.js

$(document).ready(function() {
$.ajax({
    url: 'getposts.php',
    type: 'POST',
    success: function (fetched) {
        $('#content').load('getposts.php');
    },
});
});

getposts.php (это делаетfirebug ищите setchecked.js_ = 1322020697832

<script type="text/javascript" src="setchecked.js"></script>

или getposts.php (javascript полностью отсутствует в исходном коде)

<script type="text/javascript">
$(document).ready(function() {
// set $checked values
$.ajax({
    url: 'query.php',
    type: 'POST',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    async: true,
    cache: false,
    success: function (msg) {
        ------ do some fun stuff that works --------
    },
});
});
</script>
         --------------- some php and html that DOES display -------------

Опять же, моя проблема не в содержимоммоего javascript, но как заставить javascript работать в #content. Chrome выполняет код без проблем. По какой-то причине, это firefox привередлив. Firebug не сообщает об ошибках, кроме поиска неправильного файла.или полностью игнорировать его.

Остальная часть getposts.php (html и php code) отображается внутри моего #content в Chrome и Firefox.

1 Ответ

1 голос
/ 24 ноября 2011

Я знаю, что скрипты работают, но я думаю, что они нуждаются в некотором рефакторинге.Из кода я вижу, что вы

  1. Загружаете контент из getposts.php в # content
  2. После загрузки вы хотите получить JSON
  3. Когда JSONзагружен, вы хотите что-то интересное с ним

Код можно улучшить с помощью:

  • Не делать так много вызовов ajax
  • Использование специализированных, ajax методы специально для каждой задачи
  • Помещение их в один файл

fetchposts.js

$(document).ready(function() {
    var someFunStuff = function(msg) {
        // do some fun stuff that works 
    };

    var setChecked = function() {
        $.getJSON('query.php', someFunStuff);
    };

    $('#content').load('getposts.php', setChecked);
});

Если я неправильно понял то, что вы хотитеВыполните или у вас есть дополнительные спецификации, которые необходимо ввести, дайте мне знать, и я отвечу по мере необходимости.

Обновление

Я вижу ваш комментарий об использовании одногофайл JavaScript.Что вам нужно получить из отдельной базы данных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...