我有这个jQuery函数:
$('#invite_friends_email').live('click' , function()
{
$("#invite_friends_email").dialog();
return false;
});
并在该页面上我导入了这样的div:
<?php
include '../divs/invite_frineds_by_email.php';
?>
并且div本身看起来像这样:
<div id="invite_friends_email" style="display: none;">
<form method="post" action="">
<p>
<br />
<h3>Enter Your Friends Email Addresses (Separated by Comma)</h3>
<textarea type="textarea" rows="2" cols="75" name="emails"></textarea>
</p>
<p>
<strong><h3>Email Subject (Edit subject to add your name so your friends recognize you)</h3></strong>
<input type="text" name="subject" size="75" value="Your friend wants to invite you to brainstorm problem solutions">
</p>
<p>
<h3>Enter Your Message: (Edit the body of the text however you like)</h3>
<textarea type="textarea" rows="5" cols="75" name="message">Here is the URL of the problem:
http://www.problemio.com/problems/problem.php?problem_id=<?php echo $problem_id; ?>
</textarea>
</p>
<p>
<input type="submit" style="border: none;" alt="Send email!" />
</p>
</form>
</div>
您可以通过此处重现当前问题: http://www.problemio.com/problems/problem.php?problem_id=225点击“通过电子邮件邀请朋友”链接。现在,我可以看出正在调用click函数,但不确定为什么对话框没有弹出。知道如何让它出现吗?
答案 0 :(得分:2)
嗯,你的代码实际上说:
$('#invite_friends_email').live('click' , function()
{
$("#invite_friends_email_div").dialog();
return false;
});
如果您查看HTML,则invite_friends_email_div在任何地方都不存在。此外,您发布的HTML(例如“输入您的朋友电子邮件地址”)也不存在于页面的任何位置。看起来你忘了从php中包含div。
答案 1 :(得分:2)
你应该把对话框div放在problem.php文件中,这样jquery选择器就可以了。
答案 2 :(得分:1)
可能有两件事情。
您的div和您的邀请朋友链接具有相同的ID,因此使用#invite_friends_email
选择器可能会首先返回a标记。因为它只会返回第一个结果,所以如果它是你的标签或你的div,那就好运了。
其次,我检查了生成的HTML,我无法在任何地方看到你的div,所以看看它是否包含正确。
答案 3 :(得分:1)
我检查了你的问题,实际上如果我点击链接就不会打开对话框。如果我启动Chrome JavaScript控制台并手动输入$("#invite_friends_email").dialog()
,则会打开包含链接的对话框(虽然这没有多大意义)。
基本上你正在使用的id是链接本身之一。相反,它应该是您想要在对话框中显示的div之一。也许这就是问题所在。