我有一部分代码通过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()?
我正在使用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上拔下,并且应用程序从弹簧板上运行时,叠加层向上滑动,键盘开始向上滑动,然后立即向下滑动 - …
我刚开始使用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) 我有一个类似于这样的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) 我正在尝试解析由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中)?
我有一个似乎是一个简单的问题,我很难在代码中建模(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) 这是一项非常基本的任务,但我不能为我的生活找到问题的原因.
我正在做一个附加到用户帐户的基本待办事项列表.我正在使用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_id到lists表中:
class …Run Code Online (Sandbox Code Playgroud) ruby activerecord ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1
在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)