在页面加载div时运行jQuery的函数

我有一个网站,用户可以登录并检查他们与我们一起提出的未解决的支持问题,在这个网站上是一个管理每个公司联系人的页面。 在更新站点的同时,我已经开始使用jQuery加载子页面,以便用户不会每次都刷新页面。 当该子页面加载到div中时,我开始遇到加载JavaScript的问题。

过程如下:
用户点击设置链接,加载settings.php(整页刷新)
用户单击“管理联系人”选项,该选项将managecontacts.php加载到div#settingsph中
在选择框中,用户选择他们希望更新的联系人,这会将用户数据加载到div#contact_info(在选择框下面),使用选项的值作为联系人ID传递给editcontact.php,查询db并将其呈现为一个表单以进行更改。

加载此页面后,我打算使用jQueryvalidation和ajax函数来提交表单,而无需再次刷新页面。 但是,我似乎无法在此时加载Javascript。 我已尝试将Javascript作为主页标记中的文件引用,作为标记中的脚本,作为editcontact.php中的文件和editcontact.php中的脚本引用,但这些似乎都没有加载用于隐藏错误标签或提交更新的脚本。

代码:editcontact.php

  <?php $id = $_GET['id']; if($id!=''){ if($id!='NewContact'){ //if valid id has been supplied for db retrieval try { $db = new PDO('mssql:host=' . DBHOST . ';dbname=' . DBDATA, DBUSER, DBPASS); } catch(PDOException $error) { echo "

Error! " . $error->getmessage()."

"; die(); } $query = " SELECT ContactID, Surname, Forename, Phone, Email, JobTitle, MobileNumber, LeaveDate FROM Contact WHERE CompanyID ='" . $_SESSION['companyid'] . "' AND ContactID='" . $id . "' ORDER BY Forename ASC"; foreach($db->query($query) as $contact) { ?> <!--Have tried putting the script between tags here-->

Personal Information

<input name="forename" id="forename" value="" class="text-input" />
<input name="surname" id="surname" value="" class="text-input" />
<input name="jobtitle" id="jobtitle" value="" class="text-input" />

Contact Information

<input name="phone" id="phone" value="" class="text-input" />
<input name="mob" id="mob" value="" class="text-input" />
<input name="email" id="email" value="" class="text-input" />

Misc Information

<input name="ldate" id="ldate" value="" class="text-input" />

Personal Information




Contact Information




代码:jquery.settings.js

 // JavaScript Document $(function managecontacts() { $('.error').hide(); $('input.text-input').css({backgroundColor:"#ffffe0"}); $('input.text-input').focus(function(){ $(this).css({backgroundColor:"#FFFFFF"}); }); $('input.text-input').blur(function(){ $(this).css({backgroundColor:"#ffffe0"}); }); $(".button").click(function() { // validate and process form // first hide any error messages $('.error').hide(); var forename = $("input#forename").val(); if (forename == "") { $("label#forename_error").show(); $("input#forename").focus(); return false; } var surname = $("input#surname").val(); if (surname == "") { $("label#surname_error").show(); $("input#surname").focus(); return false; } var email = $("input#email").val(); if (email == "") { $("label#email_error").show(); $("input#email").focus(); return false; } var phone = $("input#phone").val(); if (phone == "") { $("label#phone_error").show(); $("input#phone").focus(); return false; } var jobtitle = $("input#jobtitle").val(); var mobile = $("input#mob").val(); var ldate = $("input#ldate").val(); var dataString = 'forename=' + forename + '&surname=' + surname + '&jobtitle=' + jobtitle '&email=' + email + '&phone=' + phone + '&mobile=' + mobile + '&ldate=' + ldate; //alert (dataString);return false; $.ajax({ type: "POST", url: "Includes/stg/contactprocess.php", data: dataString, success: function() { $('#contact_update').html("
"); $('#message').html("

Contact Successfully Updated

") .append("

Thank you.

") .hide() .fadeIn(1500, function() { $('#message').append(""); }); } }); return false; }); });

代码: 标记用于将页面加载到div中

  function open_page(name) { $("#settingsph").load("Includes/stg/"+name+".php"); } function open_contact(id) { $("#contact_info").load("includes/stg/editcontact.php?id="+id); }  

任何关于这是否可能的帮助,或者我是否需要回到绘图板将不胜感激。

Laimoncijus有关于使用回调来运行脚本的答案。 但您也可以使用jQuery的实时事件function来完成此操作,该function会自动将事件function添加到文档准备好后添加的元素。 它很容易实现。

更改

 $(".button").click(function() { 

 $(".button").live('click', function() { 

这也适用于你的focusblur事件。

您可以在jQuery的load()方法中指定回调函数,该方法在将内容加载到DIV后调用。 您可以使用它将JS代码附加到新加载的表单和/或内容。