我搜索了很多,但我找不到答案。
在我的contact.php中,我有这段代码:
<a class="mailform" href="submit.php">Click</a>
我有这个脚本,但它不起作用:
$('.mailform').click(function() {
$.fancybox(
{
'autoDimensions' : false,
'width' : 350,
'height' : 'auto',
'transitionIn' : 'none',
'transitionOut' : 'none',
'ajax' : {
cache : false,
url : this.href
}
}
);
});
你能帮我吗?
答案 0 :(得分:1)
我怀疑你的问题与魔法this
变量的范围有关。在您的代码中,this
指的是您已分配给'ajax':
的对象字面值。为了做我认为你想做的事情,你需要另一个临时变量。按照惯例,我们称变量为that
。您还需要从点击处理程序返回false
,停止浏览器跟随主窗口中的链接。
$('.mailform').click(function() {
// Here, `this` refers to the <a> DOM element, so we create a copy of it
// and store it in `that`
var that = this;
$.fancybox({
// Now `this` refers to the object you are passing to fancybox()
'autoDimensions': false,
'width' : 350,
'height' : 'auto',
'transitionIn' : 'none',
'transitionOut' : 'none',
'ajax' : {
// Now `this` refers to the object you are assigning to 'ajax':
cache : false,
url : that.href // Use `that` instead of `this`
}
});
// We also need to return false, to stop the browser following the link
return false;
});
答案 1 :(得分:1)
您需要返回false以阻止链接跟进
$('.mailform').click(function() {
var myUrl = $(this).attr('href');
$.fancybox(
{
'autoDimensions' : false,
'width' : 350,
'height' : 'auto',
'transitionIn' : 'none',
'transitionOut' : 'none',
'ajax' : {
cache : false,
url : myUrl
}
}
);
return false;
});