jQuery не работает на моей странице включения ajax - PullRequest
0 голосов
/ 06 мая 2011

Я использую следующий код ajax для загрузки html-страницы:

var AJAX = {
            request:false,
            createHttpRequest:function()
            {
                //initiate HttpRequest for AJAX calling
                if (!AJAX.request && typeof XMLHttpRequest!='undefined') 
                {
                    try 
                    {
                        AJAX.request = new XMLHttpRequest();
                    } 
                    catch (e) 
                    {
                        AJAX.request=false;
                        alert("This Browser Does not Support AJAX");
                    }
                }
                if (!AJAX.request && window.createRequest) 
                {
                    try 
                    {
                        AJAX.request = window.createRequest();
                    } 
                    catch (e) 
                    {
                        AJAX.request=false;
                        alert("This Browser Does not Support AJAX");
                    }
                }

              },
              call:function(method,url,asyn)
              {
                  AJAX.request.open(method,url,asyn);
              },
              send:function(value)
              {
                  AJAX.request.send(value);
              }
          }

var serverTable;
var popup;
var NAVIGATION = {
                    MENU:function(filename,table,ftpFlag,ftppath,svrpath)
                    {
                        AJAX.createHttpRequest();                   
                        AJAX.call("GET",filename,true);                 
                        AJAX.request.onreadystatechange=function() 
                            {        
                                if ( AJAX.request.readyState==4)
                                    {
                                        document.getElementById('contentMain').innerHTML=AJAX.request.responseText;             
                                        if(ftpFlag==true)
                                        {                         
                                            document.getElementById("conStatus").src="images/spinner.gif";                        
                                            $('#serverFileTree').fileTree(
                                            { 
                                                root: svrpath, script: 'serverfileTree.php'
                                            }, 
                                            function(file) 
                                            { 
                                                alert(file);
                                            });
                                            $('#ftpFileTree').fileTree(
                                            { 
                                                root: ftppath, script: 'ftpfileTree.php'
                                            }, 
                                            function(file) 
                                            { 
                                                alert(file);                            
                                            }); 
                                            popup= $("#destname").dialog(
                                            {
                                                resizable: false,
                                                height:180,
                                                modal: true,
                                                title: "Destination File Name",
                                                draggable: true,
                                                autoOpen: false,
                                                hide:true,
                                                buttons: 
                                                {
                                                    Ok: function() 
                                                    { 

                                                        if(document.getElementById('destfiletext').value.match(" "))
                                                        {
                                                            alert("There should be no space in name");  
                                                        }
                                                        else
                                                        {
                                                            destDirSelected=destDirSelected+document.getElementById('destfiletext').value;
                                                            serverTable.fnAddData( [destDirSelected,selected]);

                                                            AJAX.createHttpRequest();
                                                            AJAX.call("GET","prepareFtpReplace.php?src="+selected+"&dest="+destDirSelected,true);
                                                            AJAX.request.onreadystatechange=function() 
                                                            {
                                                                if ( AJAX.request.readyState==4) 
                                                                {

                                                                }
                                                            }

                                                        AJAX.send(null);

                                                        $(this).dialog('close');
                                                        }
                                                    },
                                                    Cancel: function() 
                                                    {
                                                        $(this).dialog('close');
                                                    }
                                                }
                                            });



                                        }
                                        if(table==true)
                                        {
                                            serverTable = $("#serverList").dataTable( 
                                            {
                                                                    "bPaginate": false,
                                                                    "bFilter": false,
                                                                    "bSort": false,
                                                                    "bInfo": false,
                                            });                         

                                        }

                                    }
                            }

                    AJAX.send(null);
                    }

                } 

с этим кодом html-страница рисует в "contentMain" div.

вот мой основной HTML:

<body bgcolor="#828282">

<table width="967px" height="400px" align=center  cellpadding="0" cellspacing="0">
    <tr>
        <td colspan="3"  height="80px" class="ui-widget-shadow" align="center">
            <span   style="font-family:verdana;font-size: 26px;font-weight: bold; text-align: center;color:#fff" ></span>
            <span   style="text-align: right; float:right;" ><img height="55px" width="55px" src="images/m1.jpg" /></span>
        </td>
    </tr>
    <tr>
        <td colspan="3"  height="25px"  align="center">
            <span style="float:right;">Welcome Mr. <?php echo $u; ?>|&nbsp;&nbsp;<a href="logout.php">logout</a></span>
        </td>
    </tr>
    <tr>
        <td colspan="3"  height="2px" bgcolor="#828282" align="center">

        </td>
    </tr>
    <tr>
        <td width="180px" valign="top" align="center" height="100%" >
            <?php include("tiles/leftMenu.php");?>
        </td>
        <td width="5" bgcolor="#828282">
        </td>
        <td align="center"  valign="top">
        <div id="contentMain"></div>
        </td>
    </tr>
</table>

</body>

Проблема в том, что когда я загружаю html-страницу в div «contentMain», jquery, содержащийся в этой загруженной html-странице, не работает. Как я могу решить эту проблему? Заранее спасибо.

Ответы [ 4 ]

1 голос
/ 03 июня 2011

Я использую следующий код вместо кода AJAX:

var NAVIGATION = function() {
    return {
        MENU: function(page, success) {
            $('#contentMain').load(page, function() {
                return true;
            });
        }
    }
}();

Работает очень хорошо.

1 голос
/ 06 мая 2011

На это уже много раз отвечали.Javascript, загруженный через ajax, не оценивается после загрузки. Javascript не работает при вызове AJAX

0 голосов
/ 06 мая 2011

Измените его, чтобы использовать ajax jquery, и JavaScript будет доступен.

Если вы катаетесь самостоятельно, JavaScript должен быть запущен через eval для интерпретации браузером.Просто вставив его в innerHTML элемента div, вы не сможете использовать его на странице.

РЕДАКТИРОВАТЬ: Вызов функции JavaScript, возвращенной из ответа Ajax См. Принятое решение.Использование jquery для вашего ajax решит это за вас.

0 голосов
/ 06 мая 2011

Используйте некоторые методы jQuery.

$. Ajax () , $. Get () , $. Post ()

Все поможет сделать ваш код более читабельным и, возможно, устранить те ошибки, которые у вас есть

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