2011-05-02 165 views
0

我试图把一个网页,会弹出一个形式,用户通过电子邮件共享网页上的链接...为什么不调用这个函数?

<a href="javascript:function()"><img src="images/email.jpg"></a> 

    <div id="tellfriend"> 
    <form id='tellafriend_form' method="post" onsubmit="return executeOnSubmit();" 
    action="sharemail.php" name="tellafriend_form"> 
     <label for="name">Your Name:</label> 
     <input class="std_input" type="text" id="name" name="name" size="40" maxlength="35" value=""> 
     <label for="to">Recipient's Email:</label> 
     <input class="std_input" type="text" id="to" name="email" size="40" maxlength="35"> 
     <label for="message">Message:</label> 
     <textarea id="message" name="message" rows="18" cols="40"> 
message here</textarea> 
     <input type="submit" onclick="javascript: pageTracker._trackPageview('/share/wf360');" name="submit" class="form_but" value="Submit"> 
    </form> 
    </div><!-- #tellfriend --> 

这里是我使用的JavaScript(除了jQuery的) :

<script> 
jQuery.fn.fadeToggle = function(speed, easing, callback) { 
return this.animate({opacity: 'toggle'}, speed, easing, callback); 
}; 

$(document).ready(function() { 
    $('#tellfriend').hide(); 
    $('a.email, #tellfriend a.close').click(function() { 
    $("#tellfriend").fadeToggle('slow'); 
    }); 
}); 
</script> 
<script type="text/javascript"> 
function executeOnSubmit() 
{ 
alert('Email has been successfully sent. Thanks for sharing!'); 
} 
</script> 

我不知道为什么它不工作:窗体不弹出。

+0

噢不,函数是[保留字](http://www.ecma262-5.com/ELS5_Section_7.htm#Section_7.6.1.1),不能用作函数名。 – 2011-05-02 21:08:52

+0

我用什么来代替?我从别人身上继承了这一点,我不知道他们想要什么......谢谢。 – blackessej 2011-05-02 21:12:43

+0

第二个想法是,你尝试在你显示的第一行中调用一个名为'function'的函数,但是没有这个名字的函数。点击电子邮件图像时应该调用哪个函数? – 2011-05-02 21:15:58

回答

2

看来你试图替换已有的fadeToggle()函数。

此外,现有的fadeToggle()函数不接受'toggle'作为不透明度的值。引用jQuery API页面:

.fadeToggle()的工作原理与.fadeOut()和.fadeIn()相同。像.fadeOut(),.fadeToggle()将淡出元素,如果他们是可见的;像fadeIn(),它会淡入隐藏的元素。即使元素从不透明度0开始,如果它占据文档中的空间(即,它具有高度或宽度),它也不被视为隐藏。对于具有可见性的元素也是如此:隐藏。您可以使用.fadeTo()或.animate()将一个元素从一个不透明度淡入到另一个不透明度而不影响其显示属性。但是,如果您这样做了,那么最初具有display:none的元素不会仅仅因为您为不透明度设置动画而变得可见。希望有所帮助。

因此,请尝试删除您在开头添加的功能,它看起来像其余的代码应该没问题。


更新:

看你的网站后,它将显示你有jQuery的。5.0(不具有fadeToggle()和V1.5.2里面确实有它的两个副本,但你在装载很多其他脚本之后加载v1.5.2 ...因为这个,我在“$不是函数”的萤火虫上发生了一个错误,所以,试着完全替换v1.4.2(第一个脚本标签)与v1.5.2 ....并获得萤火虫;)

而实际上,脚本确实工作 - 但其他脚本可能会因出于以上原因。表单在第一张图片旁边的顶部弹出WAY。您需要将位置从绝对位置改为relative,并在CSS中将left调整为130px左右。

+0

我已经更新了我的答案! :P – Mottie 2011-05-04 05:05:42

+0

非常有帮助。是的,该网站是一团糟。我继承了这个项目,接下来的步骤将清理遍布各处的脚本和CSS。谢谢! – blackessej 2011-05-04 14:03:10

3

答:http://jsfiddle.net/morrison/f3Uy2/

注:

  • 使用jQuery中的fadeToggle()功能。
  • 请注意对html的更改(如果您愿意,请忽略小猫)。
+1

明确表示“忽略小猫,如果你愿意的话”。另外,我的意思是...它的工作原理。 – rockerest 2011-05-02 22:06:31

+0

嘿,现在!小猫有什么问题! o.O ... +1为好的演示;) – Mottie 2011-05-02 22:49:33

+0

我只是可能会让小猫在那里。大演示。尽管如此,它并不适用于我的网页。 https://naturesfootprintinc.com/mjf在最底层。我意识到html和header链接是一团糟 - 我继承了这个项目并且不承担任何责任! – blackessej 2011-05-03 16:29:38

相关问题