我是Orchard CMS的初学者,我需要为内容添加投票功能。我已经安装了Contib.Vote和Contrib.Review模块。之后我将Review部分添加到页面内容类型。另外,我已经执行了食谱。第一眼看上去一切都很好,但是查看链接是指#符号的同一页面,点击它就没有任何结果。似乎模块无法正常工作或工作不正常。请帮助解决我的问题。
UPD。 您好devqon和thanx的帮助。你的回答对我很有用。根据你的建议,我正在查看部分视图文件(Parts_Reviews.cshtml)中的javascript。只是为了测试我改变了它的源代码。
@using (Script.Foot())
{
<script type="text/javascript">
//<![CDATA[
(function () {
var numberOfReviewsToShowByDefault = 5;
var $showAllReviewsLink = $('#showAllReviewsLink');
var $deleteReviewConfirmationDialogDiv = $('#deleteReviewConfirmationDialogDiv');
$deleteReviewConfirmationDialogDiv.dialog({ autoOpen: false, modal: true, resizable: false });
$('#deleteReviewLink').click(function () {
$('#reviewId').val($(this).attr("data-review-id"));
ShowDeleteReviewDialog();
return false;
});
$('#showReviewFormLink').click(function () {
$('#createReviewLinkDiv').slideToggle('fast', function () { $('#reviewFormDiv').slideToggle('fast'); });
return false;
});
$('#cancelCreateReviewLink').click(function () {
$('#reviewFormDiv').slideToggle('fast', function() { $('#createReviewLinkDiv').slideToggle('fast'); });
return false;
});
$('#deleteReviewForm').submit(function () {
$('input[type=submit]', this).attr('disabled', 'disabled');
});
$('#cancelDeleteReviewButton').click(function () {
CloseConfirmationDialogDiv();
return false;
});
var rowCount = $('#reviewsList li').length;
if (rowCount > numberOfReviewsToShowByDefault) {
SetupToggle();
}
if (document.location.hash === '#Reviews') {
var topPx = $('#reviews-heading').position().top;
$('body,html').animate({ scrollTop: topPx }, 'slow');
}
if ($("#comment").length) {
var characterCountUpdater = new CharacterCountUpdater($("#comment"), $("#commentCharactersLeft"));
setInterval(function() { characterCountUpdater.UpdateCharacterCount(); }, 100);
$("#comment").keypress(function() { characterCountUpdater.UpdateCharacterCount(); });
if ($("#comment").val().length) {
$("#showReviewFormLink").trigger("click");
}
}
function CharacterCountUpdater(commentBox, charactersLeftBox)
{
this.commentBox = commentBox;
this.charactersLeftBox = charactersLeftBox;
this.maxLength = commentBox.attr("maxlength");
commentBox.removeAttr("maxlength");
return this;
}
现在显示要审核的表单。表单看起来不错,提交按钮工作,字符计数器也可以工作。但我仍然无法应用我的评级。星星在点击时没有反应。这就是为什么提交操作以错误结束'为了提交评论,您还必须提交评级。'。看起来像Parts.Stars.NoAverage.cshtml中的内容不起作用。求你帮帮我。
答案 0 :(得分:0)
根据项目的网站it is a known issue:从版本1.7.2中删除。
在查看Parts_Reviews.cshtml的the code时,它在第20-24行显示以下内容:
string showReviewUri = "#";
if (!Request.IsAuthenticated)
{
showReviewUri = Url.Action("LogOn", "Account", new { area = "Orchard.Users", ReturnUrl = Context.Request.RawUrl });
}
和第29行:
<div id="createReviewLinkDiv"><span id="createReviewLinkSpan">@noReviewsYetText<a id="showReviewFormLink" href="@showReviewUri">@reviewLinkText</a></span></div>
因此,当请求经过身份验证(您已登录)时,它旨在让锚点为#
。这意味着它可能会在JavaScript中处理,可以在第105-112行看到:
$('#showReviewFormLink').click(function () {
$('#createReviewLinkDiv').slideToggle('fast', function () { $('#reviewFormDiv').slideToggle('fast'); });
return false;
});
$('#cancelCreateReviewLink').click(function () {
$('#reviewFormDiv').slideToggle('fast', function() { $('#createReviewLinkDiv').slideToggle('fast'); });
return false;
});
这段代码应该让你看到写一篇评论的形式,所以可能会出现问题。当这个jQuery代码出现问题时,它可能会在控制台中出错,因此当您点击“第一个撰写评论”时,请查看浏览器的控制台&#39;链接。
这可以让你更进一步,如果你不知道该怎么做请提供错误,我会尝试挖掘更多。我没有下载模块,因此我没有现场直播。
答案 1 :(得分:0)
Firefox的控制台告诉:$(...)。live不是一个函数。它指的是Contrib.Stars.js源代码文件。现在jquery不支持这个函数,我在所有地方api.jquery.com/on用.on()函数替换它。现在模块工作正常。
答案 2 :(得分:0)
在下面的网站上查看我的评论,看看我是如何在Orchard 1.8.1上再次使用它的:
您基本上只需要在Contrib.Stars.js文件中更改3个不同的行,但我建议将.js文件与Review模块的不同视图一起复制到自定义主题目录,以覆盖所有内容并强制执行评论模块使用您编辑的.js文件:
在线12
&amp; 13
:
改变这个:
$(".stars-clear").live(
"click",
对此:
$("body").on(
"click", ".stars-clear",
在线44
&amp; 45
:
改变这个:
.live(
"mouseenter",
对此:
.mouseenter(
在线48
&amp; 49
:
改变这个:
.live(
"mouseleave",
对此:
.mouseleave(