【发布时间】:2011-05-03 04:39:50
【问题描述】:
我正在开发一个新站点TheDigitalScale,我正在使用 jQuery 创建一个功能列表,该列表在单击时展开 div 并在再次单击时关闭 div。
<script type="text/javascript">
$(document).ready(function()
{
//hide the all of the element with class msg_body
$(".msg_body").hide();
//toggle the componenet with class msg_body
$(".msg_head").click(function()
{
$(this).toggleClass("msg_head2").next(".msg_body").slideToggle(100);
});
});
</script>
<div class="msg_list">
<p class="msg_head">They Forgot The Buttons</p>
<div class="msg_body"><p>
Just kidding. The MXT has nifty touchscreen controls so you never have to worry about buttons getting dirty or broken.
</p></div>
</div>
它工作正常,但我还有一个产品评论链接,它使用 JavaScript do_PostBack 函数来展开评论面板。
<a href="javascript:__doPostBack('ctl00$wpm$ShowProduct$ctl07$ReviewLink','')">Review and Rate this item</a>
点击评论链接时,会导致所有 jQuery div 展开。
当我将 enablepartialrendering 设置为 false 并“修复”问题时,当点击评论链接时,它会将用户带到页面顶部并展开评论面板,而不仅仅是展开评论面板并将用户留在正确的位置。
我希望我解释得足够好;我对 jQuery、JavaScript 和 AJAX 非常陌生。
问候, 沙拉
编辑:
我想我并没有真正问过问题所以......
我可以进行哪些更改以使评论链接展开评论面板并让用户留在该区域而不展开每个 jQuery div?
这是产品页面的链接:MBSC-55
【问题讨论】:
-
我认为 __doPostBack 是一个 .net 的东西,可能应该将它包含在问题的标签中。是否有一个可访问的页面,我们可以看到正在发生的事情?
-
您好 kingjiv,感谢您的标签建议。该站点使用 ASP.net 和 AJAX。这是一个包含问题的产品页面:link。现在我用 enablepartialrendering="true" 设置它,所以当点击“查看和评价这个项目”链接时,div 会展开。
-
这是否包含在更新面板中?如果是这样,请检查更新面板是否没有返回扩展器项目,这将替换 div 的内容,破坏你的代码......
-
@Shala 你试过把:
$(".msg_head").click(function()改成$(".msg_head").bind('click', function()吗?甚至可以在评论中添加一个功能,例如$('a.review').live('click', function(prev){ prev.preventDefault(); });... 或类似的东西。
标签: javascript jquery asp.net