我添加了一个我在指南中找到的javascript元素。如下
$(document).ready(function ()
{
$('.dropdownbutton').click(function ()
{
$.post("send.php", $(".mycontactform").serialize(), function (data)
{
});
$('#success').html('Message sent!');
$('#success').hide(2000);
});
});
现有的javascript是
function toggleDisplayWait(divId, imgId, durationmSec) {
if(!$(divId).visible()) {
move = Effect.BlindDown;
newImage = "./img/minus.png";
}
else {
move = Effect.BlindUp;
newImage = "./img/plus.png";
}
move(divId, {duration: durationmSec / 1000.0 });
setTimeout(function() { $(imgId).src = newImage; }, durationmSec)
}
function BDEffect(divId, imgId)
{
/* new Effect.BlindDown(element, {duration:3});
}*/
if(!$(divId).visible())
{
move = Effect.BlindDown;
newImage = "./img/feedbacktab_open.png";
setTimeout(function() { $(imgId).src = newImage; }, 0)
}
else
{
move = Effect.BlindUp;
newImage = "./img/feedbacktab.png";
setTimeout(function() { $(imgId).src = newImage; }, 2)
}
move(divId, {duration:2});
/*setTimeout(function() { $(imgId).src = newImage; }, 0)*/
}
</script>
但是现在OLD代码和NEW代码都不起作用。
当我尝试使用旧脚本时,错误控制台现在报告“$(divId).visible不是函数”
答案 0 :(得分:1)
旧代码看起来像是在使用Prototype框架,新代码使用的是jQuery。
当你将两者结合使用时,你需要使用jQuery的noConflict()
,这样他们就不会尝试使用$
变量。
首先,在包含jQuery库之后,添加如下脚本:
<script>
jQuery.noConflict()
</script>
然后修改您的jQuery代码,如下所示:
jQuery(function ($) {
$('.dropdownbutton').click(function() {
$.post("send.php", $(".mycontactform").serialize(), function(data) {});
$('#success').html('Message sent!');
$('#success').hide(2000);
});
使用noConflict
,无论您何时想要使用jQuery,都必须使用jQuery
变量而不是$
。但是,您仍然可以将$
作为局部变量传递,并且它不会与Prototype冲突。
另请注意,我已将document.ready(function() { ... })
功能更改为jQuery's shorthand version:jQuery(function() { ... })
。该函数也将传递jQuery
对象,为方便起见,我将其命名为$
。