Jquery 从AJAX文件运行Javascript

Jquery 从AJAX文件运行Javascript,jquery,ajax,prototypejs,jotform,Jquery,Ajax,Prototypejs,Jotform,多年来我一直在努力让它发挥作用,尝试了大量的问题/答案,但没有走多远 我想我最初有两个问题,一个希望我已经解决了 我一直在使用JotForm(使用原型的简易表单创建者)。我有一个facebook风格的菜单(),它创建了一个verticleajax风格的菜单,从外部文件(在我的例子中都有一个Jotform表单)中提取html片段 目前,在包含菜单的“主页”顶部,我有: <script src="http://cdn.jquerytools.org/1.2.5/jquery.tools.min

多年来我一直在努力让它发挥作用,尝试了大量的问题/答案,但没有走多远

我想我最初有两个问题,一个希望我已经解决了

我一直在使用JotForm(使用原型的简易表单创建者)。我有一个facebook风格的菜单(),它创建了一个verticleajax风格的菜单,从外部文件(在我的例子中都有一个Jotform表单)中提取html片段

目前,在包含菜单的“主页”顶部,我有:

<script src="http://cdn.jquerytools.org/1.2.5/jquery.tools.min.js"></script>
<script type="text/javascript" src="/js/jquery.corner.js"></script>
<script type="text/javascript" src="/js/jquery.flagmenu.js"></script>
<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function($){
    var Menu = $("#_Menu").AjaxFlagMenu({
    Caption:'Manage Profile',
    CaptionClass:'CaptionClass',
    onOutClass:'onOutClass',
    onOverClass:'onOverClass',
    onClickClass:'onClickClass',
    hscOutClass:'hscOutClass',
    hscClickClass:'hscClickClass',
    Loading_gif:'/images/loading.gif',
    ajaxContent:'ajaxContent'
    });
    //Basic
    Menu.add({
        Title:'Basic Info',
        onOutIcon:'/images/icon-vcard-c.png',
        onClickIcon:'/images/icon-vcard-d.png',
        HtmlSatusContent:'',
        url:'/instructor/pages/mp-basic.php',
        data:''
    });
    //Profile Picture
    Menu.add({
        Title:'Profile Picture',
        onOutIcon:'/images/icon-camera-c.png',
        onClickIcon:'/images/icon-camera-d.png',
        HtmlSatusContent:'',
        url:'/instructor/pages/mp-photo.php',
        data:''
    });
    //Pricing and Offers
    Menu.add({
        Title:'Pricing and Offers',
        onOutIcon:'/images/icon-pound-c.png',
        onClickIcon:'/images/icon-pound-d.png',
        HtmlSatusContent:'',
        url:'/instructor/pages/mp-pricing.php',
        data:''
    });
    //Services
    Menu.add({
        Title:'Services',
        onOutIcon:'/images/icon-services-c.png',
        onClickIcon:'/images/icon-services-d.png',
        HtmlSatusContent:'',
        url:'/instructor/pages/mp-services.php',
        data:''
    });
    //Bio and Additional
    Menu.add({
        Title:'Bio and Additional',
        onOutIcon:'/images/icon-bio-c.png',
        onClickIcon:'/images/icon-bio-d.png',
        HtmlSatusContent:'',
        url:'/instructor/pages/mp-bio.php',
        data:''
    });
    $("#_td").corner("4px");
});
</script>
<script src="/js/jotform/prototype.js?v=3.1.92" type="text/javascript"></script>
<script src="/js/jotform/protoplus.js?v=3.1.92" type="text/javascript"></script>
<script src="/js/jotform/protoplus-ui.js?v=3.1.92" type="text/javascript"></script>
<script src="/js/jotform/jotform.js?v=3.1.92" type="text/javascript"></script>
<script src="/js/jotform/calendarview.js?v=3.1.92" type="text/javascript"></script>

jQuery.noConflict();
jQuery(文档).ready(函数($){
变量菜单=$(“##菜单”).AjaxFlagMenu({
标题:“管理配置文件”,
CaptionClass:“CaptionClass”,
onOutClass:'onOutClass',
onOverClass:“onOverClass”,
onClickClass:'onClickClass',
hscOutClass:“hscOutClass”,
hscClickClass:'hscClickClass',
正在加载_gif:'/images/Loading.gif',
ajaxContent:“ajaxContent”
});
//基本的
菜单。添加({
标题:“基本信息”,
onOutIcon:“/images/icon-vcard-c.png”,
onClickIcon:“/images/icon-vcard-d.png”,
HtmlStatusContent:“”,
url:“/讲师/pages/mp basic.php”,
数据:“”
});
//侧面图
菜单。添加({
标题:“个人资料图片”,
onOutIcon:“/images/icon-camera-c.png”,
onClickIcon:“/images/icon-camera-d.png”,
HtmlStatusContent:“”,
url:“/讲师/pages/mp photo.php”,
数据:“”
});
//定价和优惠
菜单。添加({
标题:“定价和报价”,
onOutIcon:“/images/icon-pound-c.png”,
onClickIcon:“/images/icon-pound-d.png”,
HtmlStatusContent:“”,
url:“/讲师/pages/mp pricing.php”,
数据:“”
});
//服务
菜单。添加({
标题:“服务”,
onOutIcon:“/images/icon-services-c.png”,
onClickIcon:“/images/icon-services-d.png”,
HtmlStatusContent:“”,
url:“/讲师/pages/mp services.php”,
数据:“”
});
//生物和附加
菜单。添加({
标题:'生物和附加',
onOutIcon:“/images/icon-bio-c.png”,
onClickIcon:“/images/icon-bio-d.png”,
HtmlStatusContent:“”,
url:“/讲师/pages/mp bio.php”,
数据:“”
});
美元(4px);
});
然后我需要做的是,当单击菜单项并从另一个页面加载HTML时,我需要运行
JotForm.init()
以启用JotForm验证功能。然而,我甚至似乎都不能发出警报(“Hello World”)以在调用的页面上工作


任何帮助都会很好!谢谢大家!

在AjaxFlagMenu.js中,在执行ajax的行中:

//Ajax
var _XMLHTTPRequest = $.ajax({type: "GET",url:_url,data:_data });
尝试添加
数据类型:“html”
,如下所示:

//Ajax
var _XMLHTTPRequest = $.ajax({type: "GET",url:_url,data:_data,dataType: "html" });
这将评估通过AJAX加载的javascript

您将在此处找到更多信息:


后期编辑


问题在于AjaxFlagMenu没有从ajax响应中计算javascript

请改用JotForm Iframe代码。这是你可以得到它的方法。在JotForm form Builder上打开表单:

  • 打开工具栏上的“设置和共享”选项卡
  • 点击“共享表单”
  • 点击“高级选项”
  • 单击“iFrame代码”并将表单代码复制到您的站点
    谢谢你!没有改变任何事情,但看起来这是朝着正确方向迈出的一步。外部html文件上的脚本应该在
    $(document).ready(function()
    中,还是应该在
    标记中?尝试在加载的html中执行一些简单的操作..如警报(1);看看它是否能评估这一点。通过ajax加载的html代码片段到底是什么样子的?我主要对javascript感兴趣……目前我已经收到警报(“Hello World”);但现在还没有。我只需要调用
    JotForm.init()
    。但这是否也意味着我需要将JotForm js文件包含在外部文件本身中,或者我仍然可以将它们包含在html加载到的主“菜单”页面中?如果将其包含在主页中,应该不会有问题……为什么不尝试调用
    JotForm.init();
    作为ajax请求()的回调?
    $.ajax({complete:function(){//Handle the complete event JotForm.init();}/..})
    我想我发现了问题:)在AjaxFlagMenu.js中,在ajax调用之后,您可以看到一个变量被分配了xhttprq(_XMLHTTPRequest),下面几行,您有:
    _XMLHTTPRequest.onreadystatechange=function(){…},正如您在该函数中看到的,内容以纯文本形式加载到容器中,并且不会计算jabascript:
    $(“#”+Options.ajaxContent).html(_-XMLHTTPRequest.responseText);
    .Add
    JotForm.init()`在html编写完成后,就我所见,这应该是可行的,但我没有选择表单发布到哪里。它还依赖于JotForm服务器在线。如果它们宕机,我们网站的很大一部分也会宕机。