问题列表 - 第37008页

现在javascript匿名函数中的`return function()`有什么用?(最佳实践)

注意:已更新并已重写

此问题已重做并更新.请原谅下面的过时参考.谢谢.

我最近看到很多javascript代码看起来对我不对.在这种情况下,我应该建议什么是更好的代码模式?我将重现我见过的代码和每个代码的简短描述:

代码块#1

此代码永远不应评估内部函数.程序员会感到困惑,因为代码应该运行.

$(document).ready( function() { 
  return function() { 
    /* NOPs */
  }
});
Run Code Online (Sandbox Code Playgroud)

代码块#2

程序员可能打算实现自调用功能.他们没有完全完成实现(他们在()嵌套paren的末尾错过了一个.另外,因为他们没有在外部函数中做任何事情,嵌套的自调用函数可能只是内联到外部函数定义.

实际上,我不知道他们打算自我调用函数,因为代码仍然是错误的.但似乎他们想要一个自我调用功能.

$(document).ready( (function() { 
  return function() { 
    /* NOPs */
  }
}));
Run Code Online (Sandbox Code Playgroud)

代码块#3

似乎程序员似乎正在尝试使用自调用功能.但是,在这种情况下,它是矫枉过正的.

$(document).ready( function() { 
  (return function() { 
    /* NOPs */
  })()
}); 
Run Code Online (Sandbox Code Playgroud)

代码块#4

一个示例代码块

$('#mySelector').click( function(event) { 
  alert( $(this).attr('id') );

  return function() { 
    // before you run it, what's the value here?
    alert( $(this).attr('id') );
  }
});
Run Code Online (Sandbox Code Playgroud)

评论:

我想我只是感到沮丧,因为它会导致人们不理解的蠕变错误,改变范围,他们不会徘徊,并且通常会产生非常奇怪的代码.这一切都来自某些教程吗?如果我们要教人们如何编写代码,我们能以正确的方式教他们吗?

您会建议哪些准确的教程向他们解释为什么他们使用的代码不正确?你建议他们学习什么模式?


我见过的所有样本都让我问这个问题已经问过了.这是我遇到的最新特定代码段,展示了这种行为.您会注意到我没有发布问题的链接,因为用户似乎非常新手.

$(document).ready(function() {
 $('body').click((function(){
  return function()
  { …
Run Code Online (Sandbox Code Playgroud)

javascript

16
推荐指数
1
解决办法
5842
查看次数

哪个css样式处理按钮上的click事件?除了悬停

我看到这个网站有一个按钮,当我将鼠标悬停在它上面时,背景会发生变化.

当我单击按钮时,按钮着色反转即对click事件做出反应.

这是哪种CSS风格?我知道:悬停是悬停,但点击怎么办?

html css

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

如何在调用函数时设置jQuery?

使用jQuery,我设置了一个链接标签的点击处理程序,如下所示:

$('#lnk').click(handleClick);
Run Code Online (Sandbox Code Playgroud)

handleClick做这样的事情:

function handleClick() {
    var $this = $(this);
    ...
}
Run Code Online (Sandbox Code Playgroud)

现在我需要在点击#lnk之外直接调用handleClick().this调用handleClick时有没有办法设置?

javascript jquery

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

JavaScript使用率过高/过低.这几天可以接受什么?

作为一个崭露头角的Web开发人员,我正在尝试跨越平台可用性/兼容性和pizazz(功能)的细线.

这是几年前的一个问题吗?我的网站的部分 - 我敢说 - 需要(也让我的生活更轻松)JavaScript不会是移动设备想要访问的东西(尽管如果它想要的话).

http://www.w3schools.com/browsers/browsers_stats.asp

如果向下滚动,似乎表明95%访问该站点的计算机已启用/安装了JavaScript.

处理此问题的人的任何意见将不胜感激.

javascript compatibility

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

Nokogiri XML解析与Rails

我看了很多,但这个似乎让我在哪里

调节器

  def index
      require 'nokogiri'
      doc = Nokogiri::XML(open("http://sports.yahoo.com/top/rss.xml"))

      @links = doc.xpath('//item').map do |i|
      {'title' => i.xpath('title'), 'link' => i.xpath('link'), 'description' => i.xpath('description')}
      end
  end
Run Code Online (Sandbox Code Playgroud)

视图

<ul>
  <%= debug @links.each.first %>
</ul>
Run Code Online (Sandbox Code Playgroud)

调试输出

{"title"=>[#<Nokogiri::XML::Element:0x8199ce34 name="title" children=[#<Nokogiri::XML::Text:0x8199c6f0 "Kolb to get start for Eagles vs. Falcons (AP)">]>], "description"=>[#<Nokogiri::XML::Element:0x8199b660 name="description" children=[#<Nokogiri::XML::Text:0x8199a594 "Kevin Kolb will make his second straight start in place of the injured Michael Vick when the Philadelphia Eagles host Atlanta on Sunday. Eagles coach Andy Reid says Vick practiced …

xml ruby-on-rails nokogiri xml-parsing

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

所有5个盒子中的数字相同,它应该是5个不同盒子中的5个不同数字

可能重复:
C#中的
随机数随机数生成器不按照我计划的方式工作(C#)

我在5个方框中得到相同的数字.怎么可以避免?

using System;
using System.Windows.Forms;

namespace LotteryTickets
{
    public partial class Form1 : Form
    {
       /// <summary>
       /// no-args Constructor
       /// </summary>
       public Form1()
       {
           InitializeComponent();
       }

       #region "== Control Event Handlers =="
       private void Form1_Load(object sender, EventArgs e)
       {
           ClearWinningNumbers();
       }

       #endregion "== End Control Event Handlers =="

       #region "== Methods ==";
       /// <summary>
       /// Clears the text inside the winning number "balls"
       /// </summary>
       private void ClearWinningNumbers()
       {
           this.lblPickFive_1.Text = "";
           this.lblPickFive_2.Text = "";
           this.lblPickFive_3.Text …
Run Code Online (Sandbox Code Playgroud)

c#

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

asp.net在回发后动态添加用户控件保存值

这是我的问题.我有一个usercontrol,我希望允许用户使用按钮单击添加任意数量的实例(每次单击一个按钮,我想将另一个用户控件实例添加到Panel).它第一次工作正常,但每个额外的回发删除所有添加的控件.我跟踪用户添加的用户控件的数量没有问题,但我如何确保它们保持在回发之前的状态?我已经阅读了一些关于使用SaveViewState和LoadViewState的人的帖子,但我找不到任何例子.

我最大的问题是确保每个用户控件的所有文本框和下拉列表在每个回发后都保持填充相同的文本/选定值/数据

提前谢谢,本

c# asp.net user-controls dynamically-generated

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

PHP $ _FILES ['file'] ['tmp_name']:如何保留文件名和扩展名?

我正在尝试从表单上传doc文件并将其发送到电子邮件.我在用

$_FILES['file']['tmp_name'];
Run Code Online (Sandbox Code Playgroud)

问题是,它返回一个随机生成的文件名.因此,当它到达收件箱时,文件名为phpvwRGKN.dat(文件名每次都是随机的).

如何保留文件名和扩展名?

注意:我正在使用geekMail类

php

23
推荐指数
3
解决办法
15万
查看次数

分配变量时SET与SELECT?

在T-SQL中分配变量时,SETSELECT语句之间有什么区别?

sql t-sql sql-server sql-server-2005 sql-server-2008

275
推荐指数
4
解决办法
37万
查看次数

如何在Perl中打开文件时才打开文件?

如果我有一个打开文件的子程序,那么只有在第一次调用subrountine时才能确保它打开它的最佳方法是什么?我有这个但不确定它是否是最佳实践:

{
my $count = 0;
sub log_msg {
    my ($msg,$name) = @_;

    if ($count == 0) {
        my $log_file_name = "/tmp/" . $name;
        open my $log_fh,">",$log_file_name or  croak "couldn't open $log_file_name : $!";
        print $log_fh "$timestamp: created and opened $log_file_name\n";
    }
    $count++;
    }
}
Run Code Online (Sandbox Code Playgroud)

perl file subroutine

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