我在使用带有子页面的jQuery时遇到了麻烦
parent.html像这样加载child.html:即用户点击
<a href="#" id="n-email">
JQuery的
$('a#n-email').click(function() {
$.ajax({
type: "GET",
url: "/scripts/contact.js",
dataType: "script"
});
$('#content').load("child.htm");
});
contact.js
$(function() {
alert ("contact js hit");
}
这偶尔会奏效。但我无法弄清楚其工作原理的逻辑。我也尝试在处理程序上添加一个引用Jquery的引用。我觉得我在这里错过了一招。
感谢jake + lucus。我有以下工作。需要一个重构,但工作
$('#n-email')。click(function(){ var e = this; 复位(E);
var mypage = $('#contentemail').load("email.php");
$.ajax({
type: "GET",
url: "/scripts/contact.js",
dataType: "script",
success: function(mypage)
{
$(document).append(mypage);
}
});
$('#contentemail').show();
});
答案 0 :(得分:2)
首先,您需要使用success属性在jQuery ajax中放置一个回调函数。 其次,你不能只是把javascript和html元素放在一起。那只是最好的工作。您可以尝试使用eval。 尝试使用此代码作为开始:
$('a #n-email').click(function() {
$.ajax({
type: "GET",
url: "/scripts/contact.js",
dataType: "script",
success: function(value){eval(value)}
});
});
答案 1 :(得分:1)
使用$(document).append(content)将从内容中删除所有脚本标记并尝试评估它们。所以你可以去
$('a #n-email').click(function() {
$.ajax({
type: "GET",
url: "/scripts/contact.js",
dataType: "script",
success: function(result)
{
$(document).append(result);
}
});
});