찾다
웹 프론트엔드JS 튜토리얼Jquery 및 WebMethod 투표를 기반으로 한 코드 function_jquery

1: 기능 설명
1) 여러 개의 별표로 구성하는 것이 가장 좋습니다. 사용자는 별표를 마우스로 클릭하기만 하면 투표할 수 있습니다2) 투표 안 함, 투표 투표 완료 후 스타 스타일이 달라짐
3) 각 스타마다 '나쁨', '보통', '괜찮음', '좋음' 등의 프롬프트를 맞춤 설정할 수 있습니다
4) 투표가 완료되면 투표 결과가 애니메이션으로 표시되며 더 이상 투표는 허용되지 않습니다


2: 아이디어 설명
1, 3) 루프를 사용하면 최대값은 다음과 같습니다. 별 개수를 지정하고 각 루프 a> 문에 를 추가합니다. 이 하이퍼링크는 클래스를 통해 별 스타일을 지정하고, 루프가 완료된 후 마우스를 해당 위로 이동할 때 표시되는 텍스트를 지정합니다. , Jquery의 추가 기능을 통해 대상 콘텐츠 영역에 추가됩니다
2) Jquery의 addClass 및 RemoveClass를 통해 이 메소드는 별의 스타일을 동적으로 조정할 수 있습니다. 점수를 매길 때 마우스가 한 번에 별 쪽으로 이동할 때 주목할 가치가 있습니다. 특정 위치에 있는 별의 스타일을 추가해야 합니다. Jquery의 prevAll()을 사용하여 현재 위치 이전의 별을 가져온 다음 add($(this))를 사용하여 현재 위치에 있는 별의 참조를 가져올 수 있습니다. .
채점 전:

UnScore 채점 중:

Scoreing채점 후:

beenScore4) 대상 영역 자식 노드에서 선택된 별의 위치 1을 기준으로 점수를 생성합니다. children().index($( this)) 그런 다음 점수는 ajax를 통해 서버와 상호 작용하여 반환됩니다. 그런 다음 대상 영역의 내용을 지우고 배경 이미지를 별 이미지로 설정한 후 가로 위치에 따라 조정할 수 있습니다. *평균 점수에 따라 의 최종 너비가 결정되며 animate를 사용하여 애니메이션 효과를 얻습니다.


3: 구현 코드
1) 자바스크립트 코드
편의상 세미 플러그인 형태로 만들었습니다. 그래도 AJAX 상호 작용을 위한 로직은 다음과 같습니다

코드 복사 코드는 다음과 같습니다.
(function ($) {
$.fn.Rate = function (options) {
options = options || {};
var StarTip = options.StarTip || ['볼 가치가 없음', '보통', '신뢰할 수 있는 정보', '매우 도움이 됨', '훌륭한 정보']; >var ItemAmount | ItemAmount | 5;
var UnRateClassName || 'star';
var RateClassName = 'star_on'; || 'OriginalState';
var PostURL = options.PostURL ||
var DoAfterPost = options.DoAfterPost || function ()
var userID || ;
var messageID = options .messageID ||
var content = $(this)
var starList = ''
for (var i = 0; i starList = [''].join ('');
}
content.empty().append(starList).find('a').hover(function () {
$(this).prevAll().add( $(this)).addClass( RateClassName);
}, function () {
$(this).prevAll().add($(this)).removeClass(RateClassName)
}) .one('click', function () {
var Score =parseInt(content.children().index($(this))) 1;
$.ajax({
type: "POST ",
url: PostURL ,
data: "{messageID:" messageID ",userID:" userID ",Score:" 점수 "}",
contentType: "application/json; 8",
dataType: "json",
success: function (msg) {
var result = (jQuery.parseJSON(msg.d)).SuccessFlag;
DoAfterPost(result);
content.empty().removeClass();
$('').addClass(originalStateClassName).prependTo(content).animate({ 'width': 16 * 결과 'px', '불투명도': 1 }, '느림');
})

}); );


参数说明:

参数名称 描述 默认值 参数类型
StarTip 鼠标移到星星上的文本提示 ['不值一看', '平平无奇', '信息靠谱', '对我很有帮助', '极品信息'] javascript数组
[tip]:数组元素个数必须要和星星个数一致
ItemAmount 星星的个数 5 数字
UnRateClassName 还没投票时星星的样式名称 'star' 字符串
RateClassName 投票中,鼠标移过时星星的样式 'star_on' 字符串
originalStateClassName 投票完成后,结果展示时星星的样式 'OriginalState' 字符串
PostURL ajax交互时,url参数 '' 字符串
DoAfterPost 投票完成后,在投票页面使用自定义方法 '' 字符串
userID ajax交互时用户ID,防止重复投票 '' 数字
messageID ajax交互时文章ID '' 数字
2) 프론트엔드 참조 코드
코드 복사 코드는 다음과 같습니다.

$( '#왼쪽 테이블 tr :eq(1) td:eq(0) #StarRate').Rate({
PostURL: 'http://www.cnblogs.com/ServiceProvider/MessageInfoService.asmx/VoteMessage',
userID: UserID ,
messageID: messageID,
DoAfterPost: function (data) {
if (data > 0) {
$(voteResultContext).html(data); }
else {
ProcessNoticeShow('이미 투표하셨습니다');
}
}
})
}

4) 스타일 시트

코드 복사 코드는 다음과 같습니다.
.star{ height:16px; 16px; 부동:왼쪽; 배경:url(../images/star.gif) 반복 없음 0 0;}
.star_on{ 배경: url(../images/star.gif) 반복 없음 0 - 32px !important;}
.OriginalState{ 너비:0px;배경: url(../images/star.gif) 반복-x 0 -16px !important;opacity:0;height:16px; 디스플레이:블록;}

3) 서버측 코드

코드 복사 코드는 다음과 같습니다
/// < ;summary>
/// 메시지에 투표하세요. 0보다 큰 반환 값은 성공을 의미합니다.
/// /// 메시지 ID
/// UserID/// Score
///
[WebMethod]
공개 문자열 VoteMessage(int messageID, int userID ,int Score)
{
SQLCMD = new SqlCommand("MessageInfo_Add_VoteUsefull_MessageIDUserID", SQLConnect);
SQLCMD.CommandType = CommandType.StoredProcedure;
SQLCMD.Parameters.Add(new SqlParameter("@messageID",SqlDbType.Int)); SQLCMD.Parameters["@messageID"].값 = messageID;
SQLCMD.Parameters.Add(new SqlParameter("@userID",SqlDbType.Int))
SQLCMD.Parameters["@userID"]. Value = userID;
SQLCMD.Parameters .Add(new SqlParameter("@Score", SqlDbType.Int))
SQLCMD.Parameters["@Score"].Value = Score
float SuccessFlag; basicSQLAccess.ExeScalarReturnValueFloat(SQLCMD);
Hashtable HTFlag = new Hashtable();
HTFlag.Add("SuccessFlag", SuccessFlag)
return JsonConvert.SerializeObject(HTFlag);

JsonConvert.SerializeObject 정보 프런트 엔드 Jquery와의 상호 작용 및 콘텐츠에 대한 소개는 이전 기사 을 참조하세요.
4:
다운로드 CSS, JS 및 별 이미지가 포함된 압축 패키지

다운로드하려면 클릭하세요
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
jquery实现多少秒后隐藏图片jquery实现多少秒后隐藏图片Apr 20, 2022 pm 05:33 PM

实现方法:1、用“$("img").delay(毫秒数).fadeOut()”语句,delay()设置延迟秒数;2、用“setTimeout(function(){ $("img").hide(); },毫秒值);”语句,通过定时器来延迟。

axios与jquery的区别是什么axios与jquery的区别是什么Apr 20, 2022 pm 06:18 PM

区别:1、axios是一个异步请求框架,用于封装底层的XMLHttpRequest,而jquery是一个JavaScript库,只是顺便封装了dom操作;2、axios是基于承诺对象的,可以用承诺对象中的方法,而jquery不基于承诺对象。

jquery怎么修改min-height样式jquery怎么修改min-height样式Apr 20, 2022 pm 12:19 PM

修改方法:1、用css()设置新样式,语法“$(元素).css("min-height","新值")”;2、用attr(),通过设置style属性来添加新样式,语法“$(元素).attr("style","min-height:新值")”。

jquery怎么在body中增加元素jquery怎么在body中增加元素Apr 22, 2022 am 11:13 AM

增加元素的方法:1、用append(),语法“$("body").append(新元素)”,可向body内部的末尾处增加元素;2、用prepend(),语法“$("body").prepend(新元素)”,可向body内部的开始处增加元素。

jquery中apply()方法怎么用jquery中apply()方法怎么用Apr 24, 2022 pm 05:35 PM

在jquery中,apply()方法用于改变this指向,使用另一个对象替换当前对象,是应用某一对象的一个方法,语法为“apply(thisobj,[argarray])”;参数argarray表示的是以数组的形式进行传递。

jquery怎么删除div内所有子元素jquery怎么删除div内所有子元素Apr 21, 2022 pm 07:08 PM

删除方法:1、用empty(),语法“$("div").empty();”,可删除所有子节点和内容;2、用children()和remove(),语法“$("div").children().remove();”,只删除子元素,不删除内容。

jquery on()有几个参数jquery on()有几个参数Apr 21, 2022 am 11:29 AM

on()方法有4个参数:1、第一个参数不可省略,规定要从被选元素添加的一个或多个事件或命名空间;2、第二个参数可省略,规定元素的事件处理程序;3、第三个参数可省略,规定传递到函数的额外数据;4、第四个参数可省略,规定当事件发生时运行的函数。

jquery怎么去掉只读属性jquery怎么去掉只读属性Apr 20, 2022 pm 07:55 PM

去掉方法:1、用“$(selector).removeAttr("readonly")”语句删除readonly属性;2、用“$(selector).attr("readonly",false)”将readonly属性的值设置为false。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경