小编Eva*_*van的帖子

通过jQuery,on()将jQuery插件调用附加到动态加载的元素

我有一部分代码通过AJAX调用动态加载,方法是将结果附加到父元素,类似于:

<div class="parent">
     <!-- Inner content loaded dynamically -->
     <div class="child">
     </div>
     <div class="child">
     </div>
     <!-- ... -->
</div>
Run Code Online (Sandbox Code Playgroud)

现在,为了挂钩鼠标悬停事件,我会做这样的事情:

$(".parent").on("mouseenter", ".child", function(){
 //Do fun stuff here
}

$(".parent").on("mouseleave", ".child", function(){
 //Undo fun stuff here
}
Run Code Online (Sandbox Code Playgroud)

这对标准函数来说效果很好,但是我想将它附加到第三方插件(在我的例子中,HoverIntent,但实际上是任何插件) -

附加HoverIntent插件的语法如下:

$(".child").hoverIntent( makeTall, makeShort )
Run Code Online (Sandbox Code Playgroud)

...但我希望这适用于我最初加载文档时不可用的动态内容,而这$(".parent").on("hoverIntent", ".child", function(){});似乎不是正确的方法.

将插件应用于初始化后加载的元素的正确方法是什么$(document).ready()

html javascript jquery jquery-plugins

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

键盘显示然后在显示MFMessageComposeViewController时立即隐藏自己

我正在使用Cordova 2.2为IOS构建PhoneGap应用程序.当我调用我编写的本机obj-c插件来显示MFMessageComposeViewController时,我遇到了一些奇怪的行为.

安装很简单 - 我有连接到UI元素的轻敲事件,按下时,会使我的PhoneGap插件调用,它传递一个号码和短信,然后显示MFMessageComposeViewController与参数预填充.

我的javascript看起来像这样:

$(document).bind('deviceready', function(){ 

    $(".theButton").tap(function(){     

        cordova.exec(function(){}, function() {}, "PhoneGapSms", "SendSms", [db.getItem("profile_sms"), db.getItem("profile_emergency")]);

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

我的obj-c代码看起来像这样:

- (void)SendSms:(CDVInvokedUrlCommand*)command
{

    CDVInvokedUrlCommand* myCommand = command;

    MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];

    NSString* body = [command.arguments objectAtIndex:0];
    NSString* toRecipientsString = [command.arguments objectAtIndex:1];

        if(body != nil)
            picker.body = body;

        if(toRecipientsString != nil)
            [picker setRecipients:[ toRecipientsString componentsSeparatedByString:@","]];


    picker.messageComposeDelegate = self;

    [self.viewController presentModalViewController:picker animated:YES];
    [[UIApplication sharedApplication] setStatusBarHidden:YES];


    [picker release];

}
Run Code Online (Sandbox Code Playgroud)

总而言之,非常简单的东西.

我的问题是:

当我的iPhone 插入我的Mac并且应用程序从XCode运行时,Message Composer叠加层显示效果很好,我的值已预先填充.插入XCode时,下图显示SMS界面正常:

在此输入图像描述

当我的iPhone 从我的Mac拔下,并且应用程序从弹簧板上运行时,叠加层向上滑动,键盘开始向上滑动,然后立即向下滑动 - …

iphone xcode objective-c ios cordova

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

Mustache JS Templating - 如何在脚本标记字符串中嵌入变量?

我刚开始使用Mustache,到目前为止我喜欢它,但这让我感到困惑.

我正在使用GitHub gist API来提取我的要点,我想要做的部分工作是将嵌入功能包含在我的页面中.问题是Mustache似乎不想与我的动态脚本标签有任何关系.

例如,这工作正常:

<div class="gist-detail">
    {{id}} <!-- This produces a valid Gist ID -->
</div>
Run Code Online (Sandbox Code Playgroud)

此外,这很完美:

<div class="gist-detail">
    <script src='http://gist.github.com/1.js'></script> <!-- Produces the correct embed markup with Gist ID #1 -->
</div>    
Run Code Online (Sandbox Code Playgroud)

如果我试图将它们结合在一起,那就会出现严重错误:

<div class="gist-detail">
    <script src='http://gist.github.com/{{id}}.js'></script> <!-- Blows up! -->
</div>  
Run Code Online (Sandbox Code Playgroud)

Chrome Inspector会显示以下内容:

GET https://gist.github.com/%7B%7Bid%7D%7D.js 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)

...看起来像我的东西是逃避或诸如此类的奇怪,所以我切换到原始语法:

<div class="gist-detail">
    <script src='http://gist.github.com/{{{id}}}.js'></script> <!-- Blows again! -->
</div>  
Run Code Online (Sandbox Code Playgroud)

我在Inspector中得到了相同的结果:

GET https://gist.github.com/%7B%7B%7Bid%7D%7D%7D.js 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)

如何获取嵌入脚本标记的正确值?

编辑

我按如下方式注入模板(在document.ready:

function LoadGists() {
    var gistApi = …
Run Code Online (Sandbox Code Playgroud)

javascript jquery json github mustache

8
推荐指数
2
解决办法
7543
查看次数

使用LINQ to XML解析SOAP响应 - 如何在父级下获取嵌套节点?

我有一个类似于这样的SOAP响应:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Body>
    <getLoginResponse xmlns="http://<remotesite>/webservices">
        <person_id>123456</person_id>
        <person_name>John Doe</person_name>
    </getLoginResponse>
  </soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)

我已经能够<get LoginResponse ...>使用以下LINQ代码成功提取节点:

string soapResult = rd.ReadToEnd();

XNamespace ns = "http://<remotesite>/webservices";

XDocument xDoc = XDocument.Parse(soapResult);

var respUser = (from r in xDoc.Descendants(ns + "getLoginResponse")
                select new User
                           {
                               Name = r.Element("person_name").Value
                           }).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

但是,调用Name = r.Element("person_name").Value给我一个Object reference not set to an instance of an object错误.

我进一步调查了这一点,我看到如果我运行此查询,所有值(person_id,person_name)实际上都在嵌套的 .Descendants().Descendants() XElement集合中:

var respUser = (from r in xDoc.Descendants(ns + …
Run Code Online (Sandbox Code Playgroud)

c# linq asp.net soap linq-to-xml

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

在iOS中使用JSONKit解析JSON数组 - 没有ObjectForKey标记的数组?

我正在尝试解析由RESTful Web API返回的JSON数组,该API看起来类似于以下内容(使用JSONKit):

[ { "DateCreated" : "/Date(1320296400000)/",
    "ID" : 1,
    "Summary" : "Summary 1",
    "Title" : "Title 1",
    "URL" : "URL 1"
  },
  { "DateCreated" : "/Date(1320296400000)/",
    "ID" : 2,
    "Summary" : "Summary 2",
    "Title" : "Title 2",
    "URL" : "URL 2"
  }
]
Run Code Online (Sandbox Code Playgroud)

我使用过去的JSON通常有一个父元素,例如news:{{node1},{node2}},它允许我从JSON响应中提取该节点,如下所示:

NSString *response = [request responseString];
NSDictionary *deserializedData = [response objectFromJSONString];
NSArray *arrNews = [deserializedData objectForKey:@"news"];
Run Code Online (Sandbox Code Playgroud)

在我的JSON中,没有这样的节点存在,它只是一个原始数组.我如何将其拉入NSArray(或者我可以挂钩到UITableView中)?

iphone json ipad ios jsonkit

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

如何获得一系列时间块的所有非重叠排列?

我有一个似乎是一个简单的问题,我很难在代码中建模(C#) -

我正在努力为参加会议的人找到最高的潜在学分.课程有时间块,如安保101 @ 9 AM-10AM,财务202 @ 4 PM-6PM等.

主要规则是,你不能同时参加两门课程 - 所以你会在9-10和10-11的课程中获得学分,但你也不能获得9-11的课程学分.

我想做的是以下内容:

我想在一天内获得一系列有效(有效的非重叠)路径.

因此,例如,一天的全套课程可能如下:

|---------------------------------------------------|
| COURSE            |   START       |   END         |
|-------------------|---------------|---------------|
| FINANCE 101       |   9:00 AM     |   10:00 AM    |
| FINANCE 102       |   10:00 AM    |   11:00 AM    |
| PYTHON 300        |   10:00 AM    |   11:00 AM    |
| SECURITY 101      |   11:00 AM    |   12:00 PM    |
| ECONOMICS 101     |   9:00 AM     |   12:00 PM    |
| DATABASE 200      |   11:00 AM …
Run Code Online (Sandbox Code Playgroud)

.net c# algorithm

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

简单的一对多关系中的ActiveRecord'找不到方法'异常

这是一项非常基本的任务,但我不能为我的生活找到问题的原因.

我正在做一个附加到用户帐户的基本待办事项列表.我正在使用Sorcery来帮助进行用户身份验证和创建,这看似很好.

问题是这样的:

当我尝试以任何方式调用`@ user.list'时,我得到以下异常(这是从rails控制台复制的):

@user = User.where(:email => "me@gmail.com")
   => [#<User id: 1, email: "me@gmail.com", crypted_password:  "$2a$10$tiLFyiuLGSB.UXElEdaTGerSv6/TZoLL4nVFdCNsv1AW...", salt:  "e6275124385b0ea157875bba281c7ae9e3a9858e", created_at: "2011-10-02 05:59:02", updated_at:  "2011-10-02 05:59:02", remember_me_token: nil, remember_me_token_expires_at: nil>] 
@user.lists
NoMethodError: undefined method `lists' for #<ActiveRecord::Relation:0x007f8b6ca89748>
from /Users/<myaccount>/.rvm/gems/ruby-1.9.2-p290@rails3.1/gems/activerecord-      3.1.0/lib/active_record/relation.rb:459:in `method_missing'
from (irb):4
from /Users/<myaccount>/.rvm/gems/ruby-1.9.2-p290@rails3.1/gems/railties-3.1.0/lib/rails/commands/console.rb:45:in `start'
from /Users/<myaccount>/.rvm/gems/ruby-1.9.2-p290@rails3.1/gems/railties-3.1.0/lib/rails/commands/console.rb:8:in `start'
from /Users/<myaccount>/.rvm/gems/ruby-1.9.2-p290@rails3.1/gems/railties-3.1.0/lib/rails/commands.rb:40:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Run Code Online (Sandbox Code Playgroud)

我的代码/数据库设置

设置很简单 - 我有一个User模型和一个List模型.a List :belongs_to :user和a User has_many :lists.我已通过以下迁移添加user_idlists表中:

class …
Run Code Online (Sandbox Code Playgroud)

ruby activerecord ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

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

RVM和OSX Lion - RVM在系统重启时"忘记"gemsets

在Rails中使用Linux时我似乎从来没有遇到过这个问题,但是每次重新启动我的机器时都会更改为OSX,RVM会丢失它的gemsets列表,但它们实际上并没有消失.

例如,我已经制作了几个宝石,我重启了我的电脑.

我运行以下命令:

$ rvm gemset list

gemsets for system (found in /Users/evan/.rvm/gems/system)
*
Run Code Online (Sandbox Code Playgroud)

当我运行rails s启动服务器时,这当然会造成严重破坏.

我设法获得gemsets的唯一方法是创建一个虚拟gemset:

$ rvm --create 1.9.2@blahblah
$ rvm gemset list

gemsets for ruby-1.9.2-p290 (found in /Users/evan/.rvm/gems/ruby-1.9.2-p290)
asdasdads
=> blahblah
global
rails3.1
rails31
test
test3
test6
whymvc
Run Code Online (Sandbox Code Playgroud)

这显示了我创建(和需要)的所有gemsets.此时我将gemset更改回我想要的:

$ rvm gemset use rails3.1
Using /Users/evan/.rvm/gems/ruby-1.9.2-p290 with gemset rails3.1
Run Code Online (Sandbox Code Playgroud)

此时我回到了需要进行功能开发的地方,直到下次重启.

我相信我在RVM网站上正确地遵循了指示,而我的.bash_profile看起来是这样的:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function
Run Code Online (Sandbox Code Playgroud)

我的问题是:

如何配置RVM以"记住"我创建的gemsets而不创建/删除虚拟的gemset?

编辑#1 - rvm info输出

运行rvm info产生以下输出:

$ rvm …
Run Code Online (Sandbox Code Playgroud)

ruby macos ruby-on-rails rvm

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