小编Ale*_*lex的帖子

CSS:如何摆脱默认窗口"padding"?设置为100%宽度的元素不会到达窗口的边框

所以我有一个直接放在体内的元素:

<body>
    <div id="header">Some stuff...</div>
    Other stuff...
</body>
Run Code Online (Sandbox Code Playgroud)

以下是使用的CSS:

body{
    text-align:center;
}
#header{
    margin:auto;
}
Run Code Online (Sandbox Code Playgroud)

因此#header div设置为100%宽度(默认值)并居中.问题是,窗口边框和#header元素之间有一个"空格"...喜欢:

|  |----header----|   |
^window border        ^window border
Run Code Online (Sandbox Code Playgroud)

我尝试用javascript调整它,它成功地将元素大小调整到确切的窗口宽度,但它并没有消除"空间":

$('#header').width($(window).width());
Run Code Online (Sandbox Code Playgroud)

一个解决方案似乎是添加以下CSS规则(并保持上​​面的javascript):

#header{
    margin:auto;
    position:relative;
    top:-8px;
    left:-8px;
}
Run Code Online (Sandbox Code Playgroud)

在我的浏览器中,这个"空间"是8px - 但我不确定在所有浏览器中是否相同?我在Ubuntu上使用Firefox ...

那么摆脱这个空间的正确方法是什么 - 如果它是我上面使用的,那么所有的浏览器都是一样的吗?

html css position padding width

25
推荐指数
2
解决办法
7万
查看次数

如何通过ajax调用从另一个目录同步加载脚本?

我经常需要通过ajax加载其他javascript文件,所以在开始时我使用jQuery提供的标准函数来加载脚本:

$.getScript('script_name.js',callback_function());
Run Code Online (Sandbox Code Playgroud)

但这没有用,因为$ .getScript是异步的($ .ajax的jQuery API默认情况下'async'设置为true;主题在$ .getScript的API注释中讨论:http:/ /api.jquery.com/jQuery.getScript/).所以我写了这个函数,由上面链接的API页面的评论中的某人提供:

load:function(script,callback){

    jQuery.ajax({

        async:false,

        type:'GET',

        url:script,

        data:null,

        success:callback,

        dataType:'script'

    });

},
Run Code Online (Sandbox Code Playgroud)

这似乎运作良好,所以我继续,但我最近注意到,这只适用于同一目录中的脚本,例如.调用myObj.load('test.js')效果很好,但调用myObj.load('test/test.js')根本不起作用.

感觉我错过了一些明显的东西,但我没有设法找到问题.任何的想法?

javascript ajax jquery

13
推荐指数
2
解决办法
3万
查看次数

Python SocketServer:发送到多个客户端?

好吧,我正在尝试用一个SocketServer构建一个小的python prgram,它应该将它收到的消息发送给所有连接的客户端.我卡住了,我不知道如何在服务器端存储客户端,我不知道如何发送给多个客户端.哦,我的程序每次超过1个客户端连接失败,每次客户端发送多个消息...

这是我的代码,直到现在:

        print str(self.client_address[0])+' connected.'
    def handle(self):
        new=1
        for client in clients:
            if client==self.request:
                new=0
        if new==1:
            clients.append(self.request)
        for client in clients:
            data=self.request.recv(1024)
            client.send(data)

class Host:
    def __init__(self):
        self.address = ('localhost', 0)
        self.server = SocketServer.TCPServer(self.address, EchoRequestHandler)
        ip, port = self.server.server_address
        self.t = threading.Thread(target=self.server.serve_forever)
        self.t.setDaemon(True)
        self.t.start()
        print ''
        print 'Hosted with IP: '+ip+' and port: '+str(port)+'. Clients can now connect.'
        print ''
    def close(self):
        self.server.socket.close()

class Client:
    name=''
    ip=''
    port=0
    def __init__(self,ip,port,name):
        self.name=name
        self.hostIp=ip
        self.hostPort=port
        self.s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.s.connect((self.hostIp, self.hostPort))
    def …
Run Code Online (Sandbox Code Playgroud)

python sockets networking socketserver python-2.7

9
推荐指数
2
解决办法
2万
查看次数

调车场算法可以用来解析包含逻辑、比较和算术运算符混合的表达式吗?

根据维基百科,调车场算法用于解析数学表达式。但有什么理由不能将它与逻辑和算术表达式以及比较混合使用吗?

举个例子,可以用它来解析这个:

a+b<17 && a+b>3 || a==b
Run Code Online (Sandbox Code Playgroud)

据我所知,您可以将逻辑运算符定义为具有最低优先级,然后是比较运算符,然后使用优先级递增的常用算术运算符。或者我错过了什么?

algorithm parsing expression operator-precedence shunting-yard

5
推荐指数
0
解决办法
1104
查看次数

Javascript:对象如何存储对另一个对象方法的引用,并"远程"调用它?

所以,我有两个对象,a和b.现在,我想将b的一个方法传递给一个对象,它应该存储它.我们称之为b.met:

b.met=function(){
    alert(this.txt);
}
Run Code Online (Sandbox Code Playgroud)

现在,我想从a调用b.met.以下代码不起作用,因为a.met是a.范围内的b.met的克隆:

a.met=b.met;
a.met(); //Executes in the 'a' scope!
Run Code Online (Sandbox Code Playgroud)

到目前为止,我找到的唯一方法是将方法的名称保存在字符串中并在eval语句中使用它:

a.toCall='b.met';
eval(a.toCall+'();');
Run Code Online (Sandbox Code Playgroud)

既然每个人都说你应该避免使用eval ...还有其他可能性吗?


编辑 - 参见评论:所以我改变了我的代码:

a:{
    processes:[],
    spawnProcess:function(type,id,closeFn){
    var closeFn=closeFn || 'function(){}';
    this.processes.push({type:type,id:id,closeFn:closeFn});
}
Run Code Online (Sandbox Code Playgroud)

至:

a:{
    processes:[],
    spawnProcess:function(type,id,closeFn){
    var closeFn=function(){closeFn()} || 'function(){}';
    this.processes.push({type:type,id:id,closeFn:function(){closeFn()}});
}
Run Code Online (Sandbox Code Playgroud)

执行以下代码时,我收到过多的递归错误:

a.spawnProcess('','',b.met);
a.processes[0].closeFn();
Run Code Online (Sandbox Code Playgroud)

javascript methods eval reference object

3
推荐指数
1
解决办法
4692
查看次数