小编use*_*090的帖子

使用单击事件处理程序时,为什么要执行非匿名函数?

我一直在探索为事件处理程序使用自定义函数.在这个精简的示例中,我试图在用户单击按钮时弹出警报.

但是当页面加载时,警报框会立即弹出!我究竟做错了什么?(评论部分完全相同).

如果我定义bclick()函数就好

function bclick(foo, bar){ ... }
Run Code Online (Sandbox Code Playgroud)

结果也是一样的.

头文件中的JS:

<script type="text/javascript">

var bclick = function(foo, bar){alert( foo + "  " + bar + "\n");}

//$(document).ready(function(){
//    $("button").click(bclick("Button","Clicked"));
//    });

$("button").click(bclick("Button","Clicked"));

</script>
Run Code Online (Sandbox Code Playgroud)

正文中的相关HTML:

<button>Click Me!</button> 
Run Code Online (Sandbox Code Playgroud)

jquery events function

8
推荐指数
1
解决办法
6136
查看次数

如何在循环中的Coffeescript中使用setTimout

window.onload = ->

  boxOrig1 = 10
  boxOrig2 = 30
  canvasW = 400
  canvasH = 300

  ctx = $("#canvas")[0].getContext('2d');

  draw = (origin,dimension) ->    
    ctx.clearRect(0, 0, canvasW, canvasH)
    ctx.fillStyle = 'rgb(200,0,0)'  
    ctx.fillRect(origin + boxOrig1, boxOrig1, dimension, dimension)  
    ctx.fillStyle = 'rgba(0, 0, 200, 0.5)'  
    ctx.fillRect(origin + boxOrig2, boxOrig2, dimension, dimension)

  for m in [10..100] by 10
    t = setTimeout (-> draw(m, 150)), 1000 
    t.clearTimeout
#     draw(m,150)
#     alert m
Run Code Online (Sandbox Code Playgroud)

作为练习,上面的代码是在画布上绘制一个小设计,暂停一秒,然后再向右重绘10个像素.

我可以看到,当我用警报中断循环时,机制工作正常(如最后两条注释行),但我没有得到setTimeout函数的预期行为.设计只是在超时后出现在最右边的位置,跳过两者之间的增量步骤.

我从其他例子中尝试了许多不同的方法,但它只是在融化我的大脑.有什么建议?

javascript jquery settimeout coffeescript

7
推荐指数
1
解决办法
4118
查看次数

Apache2访问仅限于本地LAN

直到最近,我还有一堆虚拟网站设置如下:

<VirtualHost 127.0.0.1:1234>
    ...
Run Code Online (Sandbox Code Playgroud)

这适用于在我使用Linux桌面的本地计算机上进行测试.为了测试MS和资源管理器如何从我的Windows笔记本电脑显示我的页面,我将其更改为

<VirtualHost *:1234>
    ...
Run Code Online (Sandbox Code Playgroud)

这也很好,在我的笔记本电脑的IE 上从http:// [mylinuxservername]:1234调用网站.但是,我想将该通配符限制为本地局域网.插入任何ip,如192.nnn.nnn.nnn或192.*.*.*,其中通配符在上面导致在Windows机器上403 Forbidden.本地服务器在我的Linux机箱上仍能正常工作:

<VirtualHost 127.0.0.1:1234 192.*.*.*:1234>
    ...
Run Code Online (Sandbox Code Playgroud)

要么

<VirtualHost 127.0.0.1:1234 192.nnn.nnn.nnn:1234> #exact IP of laptop
    ...
Run Code Online (Sandbox Code Playgroud)

无论如何,我不喜欢上面第二个配置示例中的那个通配符.提示任何人?

apache2 virtualhost

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