小编meg*_*gas的帖子

JavaScript会在每个单词上获得事件

通常JavaScript绑定DOM元素上的事件.但我想知道用户点击了哪个词.对我来说熟悉的方法就是像这里一样包装每一个字:

<a href="javascript:onClick()">And</a> <a href="javascript:onClick()">now</a> <a href="javascript:onClick()">the</a>
<a href="javascript:onClick()">kung</a> <a href="javascript:onClick()">pao</a> <a href="javascript:onClick()">chicken</a>.
Run Code Online (Sandbox Code Playgroud)

我认为这是一个冗余的代码,是否可以使代码更简洁?谢谢

javascript javascript-events

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

jQuery,Firefox和Chrome的区别

例如,我有这段html代码:

    .....
    <span class="no">   1</span> require <span class="s"><span class="dl">'</span><span class="k">yaml</span><span class="dl">'</span></span>
    <span class="no">   2</span> require <span class="s"><span class="dl">'</span><span class="k">set</span><span class="dl">'</span></span>
    <span class="no">   3</span>
    <span class="no">   4</span> <span class="r">module</span> <span class="cl">ActiveRecord</span> <span class="c">#:nodoc:</span>
    <span class="no">   5</span>   <span class="c"># Generic Active Record exception class.</span>
    <span class="no">   6</span>   <span class="r">class</span> <span class="cl">ActiveRecordError</span> &lt; <span class="co">StandardError</span>
    <span class="no">   7</span>   <span class="r">end</span>
    .....
Run Code Online (Sandbox Code Playgroud)

然后我在Firefox和Chrome浏览器中运行这个jQuery代码:

$('.no')[0]
Run Code Online (Sandbox Code Playgroud)

在Chrome中,我有:

<span class=?"no">?   1?</span>?
Run Code Online (Sandbox Code Playgroud)

但在Firefox中,我还没有完整的元素:

<span class="no">
Run Code Online (Sandbox Code Playgroud)

这种差异真的让我的项目变得混乱,请解释我为什么以及如何避免这个问题.谢谢

html javascript firefox jquery google-chrome

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

异步函数中的变量范围

我已经构建了函数来返回一些变量.但我的函数异步使用另一个函数.

function getVariable() {
  var myVariable;
  asyncronousFunction(function(...){

    myVariable = ...

  });
  return myVariable;
}
Run Code Online (Sandbox Code Playgroud)

问题是myVariable外部和内部asyncronousFunction是不同的变量.所以我无法myVariable从异步函数赋值.

如何解决这个范围问题?谢谢.

javascript

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

无法为ace编辑器设置语言模式

我可以通过这种结构为javascript,css,html,json设置语言模式:

var JavaScriptMode = require("ace/mode/javascript").Mode;
editor.getSession().setMode(new JavaScriptMode());
Run Code Online (Sandbox Code Playgroud)

但我不能为ruby,java和其他语言设置语言模式.

在我的项目中,我有一个包含ace文件的文件夹,如下所示:

mode-javascript.js
mode-html.js
mode-css.js
mode-json.js
mode-java.js
mode-ruby.js
...
Run Code Online (Sandbox Code Playgroud)

我假设这些文件用于设置语言模式,但为什么它可能用于某些语言但不能用于其他语言?

ace-editor

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

为什么eval创建方法作为私有方法?

这段代码创建方法作为私有方法,为什么?

a = %q{def hello() "Hello there!" end}
class A; end
A.class.send(:eval, a)
A.new.hello #=> NoMethodError: private method `hello' called for A
Run Code Online (Sandbox Code Playgroud)

平台:ruby 1.9.3p125,经过测试 pry

ruby metaprogramming

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

三元运算符的语法错误

我是Python的新手,我正在尝试使用具有这种格式的三元opertor(我想是这样)

value_true if <test> else value_false
Run Code Online (Sandbox Code Playgroud)

这是一段代码:

expanded = set()

while not someExpression:

    continue if currentState in expanded else expanded.push(currentState)

    # some code here
Run Code Online (Sandbox Code Playgroud)

但Python不喜欢它并说:

SyntaxError: invalid syntax (pointed to if)
Run Code Online (Sandbox Code Playgroud)

怎么解决?

python ternary-operator

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

创建大文件的最快方法?

我需要创建一个充满任何东西的巨大文件.我这样做,但需要很长时间:

exit 1 unless ARGV.length > 0
File.open("file-#{ARGV[0]}M.txt", 'w') do |f| 
  (ARGV[0].to_i*1048576).times {f.write(1) }
end
Run Code Online (Sandbox Code Playgroud)

这样做的最佳方式是什么(以独立于平台的方式?)

ruby file

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

如何在Rails中自动从数据库中删除记录

我有一个名为products的rails表设置,并且一切正常,假设我要在创建后3周自动删除记录,如何处理代码

我的产品数据库如下

class Products < ActiveRecord::Migration
  def change
    create_table :products do |t|
      t.text :description
      t.string :price
      t.string :name
      t.string :contact
      t.attachment :photo
      t.string :slug
      t.integer :user_id

      t.timestamps
    end
    add_index :products, :user_id
  end
end
Run Code Online (Sandbox Code Playgroud)

database ruby-on-rails

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

如何制作无限枚举器

假设我有一个数组

array = [1,2,3]
Run Code Online (Sandbox Code Playgroud)

我需要创建一个以循环方式返回值的枚举器:

array.next #=> 1
array.next #=> 2
array.next #=> 3
array.next #=> 1
array.next #=> 2
...
Run Code Online (Sandbox Code Playgroud)

我相信这是一个很好的解决方案

ruby enumerator

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

载波的后备图像

我的上传者除了一件小事外还能很好地工作.默认图像的设置.我正在使用carrierwave为用户上传他们自己的个人资料图片:

用户模型

class User < ActiveRecord::Base     
    has_one :avatar, class_name: 'Image', foreign_key: :user_id

    before_create :create_fallback_image

    def create_fallback_image
        self.create_avatar
    end
end
Run Code Online (Sandbox Code Playgroud)

图像模型

class Image <ActiveRecord :: Base

class Image < ActiveRecord::Base

    mount_uploader :file_name, AvatarUploader, auto_validate: false

    belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)

头像上传者

class AvatarUploader < BaseUploader

  include CarrierWave::RMagick

  storage :file

  process resize_to_fit: [75, 75]
  process convert: 'gif'

  def default_url
   'foobar'
  end

  def filename
      random_string + '.gif'
    end
  end

  def random_string
    @random_string ||= User.random_string
  end
end
Run Code Online (Sandbox Code Playgroud)

当用户在没有上传可选配置文件图像的情况下注册时,会为它们分配与其配置文件图像的关联,但是它们不是default_url工作,而是从文件名方法中获取随机字符串.

我以为我可以像这样绕过它:

用户模型

class User < ActiveRecord::Base …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails carrierwave

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