我正在尝试在页面上放置一个链接,该链接将弹出供用户通过电子邮件共享页面的表单...

  <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>


我不确定为什么它不起作用:表格没有弹出。

最佳答案

看来您正在尝试替换现有的fadeToggle()函数。

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


  .fadeToggle()的工作原理与.fadeOut()和.fadeIn()相同。像.fadeOut()一样,.fadeToggle()会淡化元素(如果可见)。像fadeIn()一样,如果元素被隐藏,它将使元素淡入。即使元素以不透明度0开头,即使它占用了文档中的空间(即,它具有高度或宽度),也不会被认为是隐藏的。具有可见性的元素也是如此:隐藏。您可以使用.fadeTo()或.animate()在不影响其显示属性的情况下将元素从一种不透明性淡入另一种。但是,如果执行此操作,则最初显示的元素将不会显示:仅因为要对不透明度进行动画处理,任何元素都不会变得可见。希望能有所帮助。


因此,请尝试删除开始时添加的功能,然后看起来其余代码应该没问题。



更新:

看完您的站点后,您似乎有两个jQuery副本,即v1.4.2(不带fadeToggle()和v1.5.2,不带relative。但是您在加载许多其他脚本之后加载了v1.5.2)加载...因此,我在萤火虫上看到“ $不是函数”错误,因此,请尝试用v1.5.2。完全替换v1.4.2(第一个脚本标记),然后获取firebug;)

实际上,该脚本确实可以工作-但由于上述原因,其他脚本可能已损坏。表单在第一个图像旁边的顶部弹出WAY。您需要将位置从绝对位置更改为left,并将CSS中的130px调整为左右。

关于javascript - 为什么不调用此功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5862475/

10-10 00:16