关于用jQuery修改CSS样式的一点代码理解上的疑问
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于用jQuery修改CSS样式的一点代码理解上的疑问相关的知识,希望对你有一定的参考价值。
$(document).ready(function()
$("#orderedlist li:last").hover(function()
$(this).addClass("green");
, function()
$(this).removeClass("green");
);
);
问题:他只是addClass和removeClass,他就知道里面的参数一定是代表颜色而不是其他什么元素么?
addClass 和 removeClass 操作的DOM是 标签内部class属性的值.
$(this).addClass("green");
既然这么写的,在css里肯定定义过一个样式
.green.......,当然,green类可以定什么颜色而已.
就像 <a class='bold'></a>经过
$("a").addClass("green");
实际 就变成了<a class='bold green'></a>(当然不能从查看源文件那里看出来,因为浏览器查看的源文件都是从服务器端下载过来的,后期js操作的结果你可以在firebug里查看)
关于Django中间件自己的一点理解
Django中间件我觉得是一个非常重要的东西,所以把自己的一些理解分享出来,哪里有不对的还希望大家可以帮助我修改。
因为是自己写的代码,所以就把代码粘过来了,里边每一部分都会有自己的理解和注释,见谅!
from django.utils.deprecation import MiddlewareMixin
from django.shortcuts import redirect,HttpResponse
#对于有些Django没有MiddleMixin类,就在上边自己写一个,但是这时上边的类引用就不要再引了
# class MiddlewareMixin(object):
# def __init__(self, get_response=None):
# self.get_response = get_response
# super(MiddlewareMixin, self).__init__()
#
# def __call__(self, request):
# response = None
# if hasattr(self, ‘process_request‘):
# response = self.process_request(request)
# if not response:
# response = self.get_response(request)
# if hasattr(self, ‘process_response‘):
# response = self.process_response(request, response)
# return response
#有的Django版本不支持上边的MiddleMixin类,这时你需要自己在上边写一个MiddleMixin类
#定义完自己的中间件加到SETTINGS文件里就可以用了。
class M1(MiddlewareMixin):
def process_request(self,request):
# if request.path_info==‘login‘:
# return None
# elif request.session.get(‘user‘):
# return redirect(‘login‘)
print(‘M1_process_request‘,request)
def process_response(self,request,response):
print(‘M1_request_response‘)
return response
#关于中间件的process_view函数,其实就是帮助路由匹配系统匹配视图函数的中间件,所以在执行完process_request函数以后,会执行
#这里的process_view来匹配视图函数,匹配到以后再去执行视图函数的函数体(注意这里的匹配到并不是匹配到就结束,而是全部都要匹
# 配一遍),所以process_view的执行结果会在视图函数之前,之后再去执行exception函数(如果匹配到异常的话,注意这里的异常只捕
#捉一次),最后再去执行process_response函数
#对于在process_view函数中直接返回结果的情况,这时不再执行接下来的process_view函数,也不再执行视图函数,而是直接从最底端
# 开始执行倒序的process_response函数,这时可以说process_view函数替代了原来的视图函数。
def process_view(self, request, callback, callback_args, callback_kwargs):
print(‘M1.process_view‘)
def process_exception(self,request,response):
print(‘M1.process_exception‘)
return HttpResponse(‘Internal_Error(M1),This is PROCESS_EXCEPTION_HANDLING_FUNCTION‘)
class M2(MiddlewareMixin):
def process_request(self,request):
print(‘M2_process_request‘)
def process_response(self,request,response):
print(‘M2_process_response‘)
return response
def process_view(self, request, callback, callback_args, callback_kwargs):
print(‘M2.process_view‘)
def process_exception(self,request,response):
print(‘M2.process_exception‘)
return HttpResponse(‘Internal_Error(M2),This is PROCESS_EXCEPTION_HANDLING_FUNCTION‘)
#中间件流程总结:
#①.在没有process_view或者process_exception时,浏览器的访问请求通过与Django独立的wsgi模块建立socket链接,在这之后通过Django
#设置的中间件(本身是类,并且可以调用类下定义的方法),顺序是按照配置文件里的中间件中的列表顺序执行中间件的process_request部分,
#遇到不是return None的process_request就会中断,然后从当前终止的位置倒序执行process_response
#②.如果中间件定义了process_view,这时就会顺序执行process_request,执行结束,再从头开始执行process_view以及request_response
#的中间件方法.
#具体显示效果如下:
# M1_process_request <WSGIRequest: GET ‘/favicon.ico‘>
# M2_process_request
# Not Found: /favicon.ico
# [18/Sep/2017 18:32:58] "GET /favicon.ico HTTP/1.1" 404 2061
# M2_process_response
# M1_request_response
# [18/Sep/2017 18:32:59] "GET / HTTP/1.1" 200 62
# M1_process_request <WSGIRequest: GET ‘/‘>
# M2_process_request
# M1.process_view
# M2.process_view
# This is Index View_Function
# M2.process_exception
# M2_process_response
# M1_request_response
#③对于process_response,一定要有返回值,不然访问页面时,后端会报错。
#同时,中间件的process_request处理完请求,视图函数也处理完请求返回值时,倒序通过process_response的return返回值,期间我们
#可以通过process_response处理视图函数返回的值,从而达到修改视图函数返回结果的效果。
以上是关于关于用jQuery修改CSS样式的一点代码理解上的疑问的主要内容,如果未能解决你的问题,请参考以下文章