我有一个简单的javascript代码,用其他文件的内容替换页面内容....(test2.html)
代码:
$(document).ready(function(){
$("[href='#']").click(function() {
function getcontent(url, id) {
$("#id").load("url");
}
});
});
现在正在使用
<div id = "content">
<p> REPLACE </p>
</div>
<a href="#" onClick="getcontent('test2.html', 'content')">click here</a>
现在,点击click here
REPLACE
应该被test2.html
的内容替换......但它没有发生......
我在我的脚本中包含了所需的jquery.js文件..
答案 0 :(得分:1)
不,这不起作用。 getcontent
是在特定范围内定义的函数 - 单击处理程序回调函数的函数。它不能在全局范围内访问 - onClick
方法接收的范围。
您应该使用真正的点击处理程序,可能使用数据属性设置数据:
$('[href="#"]').click(function() {
$('#' + $(this).data('id')).load($(this).data('url'));
});
使用以下HTML:
<a href="#" data-url="test2.html" data-id="content">click here</a>
答案 1 :(得分:1)
你有一个奇怪的设置。函数getcontent
未在全局范围内定义,HTML中的onclick
事件处理程序无法找到它。还有其他问题。
我建议像:
<a href="#content" rel="test2.html">click here</a>
和
$(function(){
$("a[href^='#']").click(function(){
$(this.href).load(this.rel);
});
});
答案 2 :(得分:0)
$('#' + id).load(url);
在上面的当前方法中,您传递的是字符串文字,而不是变量本身。
答案 3 :(得分:0)
您似乎误解了代码的某些部分正在做什么。此外,我建议给你的href一个真正的id,让事情变得更容易。您不需要使用jQuery“click”方法,也可以在HTML中内联指定onclick处理程序。
请改为尝试:
<div id = "content">
<p> REPLACE </p>
</div>
<a id="clickThis" href="#">click here</a>
$(document).ready(function() {
$('#clickThis').click(function() {
$('#content').load('test2.html');
});
});
您的代码有一些评论:
$(document).ready(function(){
// this will assign a click handler, you don't need an 'onclick'
// attribute on the anchor tag also
$("[href='#']").click(function() {
// but what does your click handler do?
// It defines a function that is never called.
function getcontent(url, id) {
$("#id").load("url");
}
});
});