Как использовать функцию JS из загруженного AJAX? - PullRequest
0 голосов
/ 28 мая 2010

функция находится на странице, загружающей ajax, но я пытаюсь вызвать функцию

коды:

[ajax]

$.ajax({
type: "POST",
url: "loginpersonal.asp",
data: "id=<%=request("id")%>",
beforeSend: function() {
    $("#personaltab").hide();
},
success: function(msg){
    $("#personaltab").empty().append(msg);
},
complete: function() {
    $("#personaltab").slideDown();
},
error: function() {
    $("#personaltab").append("error").slideDown();
}
});

[jsfunction]

function GetCount(t){
    if(t>0) {
        total = t
    }
    else {
        total -=1;
    }
    amount=total;
                                            if(amount < 0){
        startpersonalbid();
    }
    else{
        days=0;hours=0;mins=0;secs=0;out="";
        days=Math.floor(amount/86400);//days
        amount=amount%86400;
        hours=Math.floor(amount/3600);//hours
        amount=amount%3600;
        mins=Math.floor(amount/60);//minutes
        amount=amount%60;

        secs=Math.floor(amount);//seconds
        if(days != 0){out += days +":";}
        if(days != 0 || hours != 0){out += hours +":";}
        if(days != 0 || hours != 0 || mins != 0){out += ((mins>=10)?mins:"0"+mins) +":";}
        out += ((secs>=10)?secs:"0"+secs) ;
        document.getElementById('countbox').innerHTML=out;
        setTimeout("GetCount()", 1000);
    }
}
window.onload=function(){
GetCount(<%= DateDiff("s", Now,privatesellstartdate&" "&privatesellstarttime ) %>);

поэтому в конце файла loginpersonal.asp из ajax ... если он делает то, что предполагает ... я пытаюсь снова вызвать функцию GetCount ().

Ответы [ 2 ]

0 голосов
/ 28 мая 2010

Я не уверен, какую библиотеку вы используете, но я использую HTML следующим образом:

<div>
  My markup
</div>

<script type="text/javascript">

(function ($) {
   window.myFunction = function() {
      alert("Running from ajax loaded file");
   }
})(jQuery);

</script>

А затем с помощью jquery я называю это так:

$("div#loadMe").load("/snippets/file.html", function(response, status, xhr){
  if (status == "error") {
    alert ("Error");
    return;
  }
  // do stuff
  window.myFunction();
});

Конечно, вы можете использовать любую библиотеку для загрузки ajax. Я не тестировал приведенный выше код, но он похож на тот код, который я сейчас использую.

Я считаю, что с помощью jquery вам нужно загрузить ВЕСЬ файл, иначе сценарии не запустятся. Если вы нацелены только на определенный элемент в файле, сценарии не загружаются и не запускаются. Другими словами, вы не можете сделать это: load("/snippets/file.html #container") и запустить ваши сценарии.

Кроме того, я думаю, что вы должны быть на том же сайте, чтобы это работало, если только вы не загружаете с помощью jsonp.

0 голосов
/ 28 мая 2010

Вы не можете вызывать javascript, включенный в страницы ajax для безопасности. вам нужно вызвать внешний javascript и проверить его в приложении. используя фреймворк, многие фреймворки делают это автоматически.

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