小编asg*_*eo1的帖子

jQuery事件处理程序总是按照绑定的顺序执行 - 任何方式都可以解决这个问题?

jQuery事件处理程序总是以绑定的顺序执行,这可能很烦人.例如:

$('span').click(doStuff1);
$('span').click(doStuff2);
Run Code Online (Sandbox Code Playgroud)

单击跨度将导致doStuff1()触发,然后doStuff2().

在我绑定doStuff2()时,我想 doStuff1()之前选择绑定它,但似乎没有任何简单的方法来执行此操作.

我想大多数人会说,只需编写如下代码:

$('span').click(function (){
    doStuff2();
    doStuff1();
});
Run Code Online (Sandbox Code Playgroud)

但这只是一个简单的例子 - 在实践中,这样做并不总是方便.

在某些情况下,您要绑定事件,并且您绑定的对象已经有事件.在这种情况下,您可能只希望在任何其他现有事件之前触发新事件.

那么在jQuery中实现这一目标的最佳方法是什么?

jquery

135
推荐指数
5
解决办法
10万
查看次数

Chrome中的页面重新加载在重新加载页面之前不必要地触发绑定事件

希望有人对此有一个很好的答案:

为什么Chrome(14.0)会在刷新页面时触发文档就绪和窗口加载事件?请注意,我不是在谈论新页面加载时会发生什么,而是在加载之前.请参阅以下代码:

<form name="form1" method="post" action="tmp.aspx?a=1" id="form1">
<script type="text/javascript">

    $(document).ready(function () { console.log('document/ready' + new Date()); });

    $(window).load(function () { console.log('window/load' + new Date()); });

</script>

<a href="tmp.aspx?a=1">tmp</a>
</form>
Run Code Online (Sandbox Code Playgroud)

当我第一次访问页面时,我在控制台上获得两个输出,一个用于文档/就绪,一个用于窗口/加载.当我刷新页面时,会快速输出两个,并在此之后立即输出两个(从新页面视图).如果我只是单击直接返回到同一页面的链接(tmp.aspx),则不会发生这种情况.

我相信对此有一个很好的解释.

问候!

编辑:在页面刷新之前,对$(document).ready()和$(window).load()进行了额外调用.因此,当我第一次加载页面时,他们的方法被调用一次,然后我点击刷新并且在页面重新加载之前再次调用方法.之后,当页面刚重新加载时,这些方法称为第三次.

javascript jquery google-chrome javascript-events google-chrome-devtools

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

在HTML5 iOS应用程序中安全存储数据 - localStorage/WebSQL/IndexedDB是否合适?

我正在编写一个我想在iOS应用商店中发布的HTML5应用程序.使用PhoneGap或包装在UIWebView控件中.

我在为应用程序存储数据方面有什么选择,我有点困惑.

是否使用适合在此类应用程序中存储应用程序数据的localStorage,WebSQL或IndexedDB技术?我将存储JSON和XML数据.

请记住,如果用户无意中删除了这些数据,那么他们将失去工作,这显然是我不想发生的.

我知道减轻这种风险的唯一真正方法是将数据同步到"云"或其他在线系统 - 我可以在将来的版本中执行此操作,但现在不能.最初我只想在本地存储数据,如果这是一种合理稳定的做事方式.

根据我的理解,当清除cookie时,浏览器也将清除任何localStorage数据.因此,我可以看到用户意外地执行此操作的规则.

WebSQL看起来很不错 - 用户无法在iOS上无意中删除它.他们实际上必须进入浏览器设置并手动删除数据库.

但是WebSQL的缺点在于,未来我可能不会支持它.

使用IndexedDB,我不清楚何时清除该数据.删除cookie时是否也会删除它,或者Safari设置中的"数据库"选项是否会控制它?

IndexedDB是更好的解决方案,因为它将来会比WebSQL提供更好的支持吗?

还有其他更合适的解决方案我不知道吗?

html5 local-storage ios web-sql indexeddb

14
推荐指数
2
解决办法
7673
查看次数

如果请求包含XML,Elmah不会在MVC应用程序中记录http post请求的异常

我在MVC4(RC)应用程序中遇到了一个奇怪的问题.(在.NET 4.0上运行)

我刚刚设置了Elmah来记录异常/错误.

我基本上安装了Elmah.MVCelmah.sqlserver NuGet包.(分别为2.0.0和1.2版)

它似乎工作正常 - 我可以去elmah页面查看错误:

http://myserver/elmah

例如,如果我创建了一些404错误,它们将出现在此日志中.

不起作用的是:我有一个带有[HttpPost]动作的标准MVC控制器.我已经设置好了它总是会抛出一个异常:

public class TestController : Controller
{
    [HttpPost]
    [ValidateInput(false)]
    public void Testing()
    {
        throw new Exception("uh oh");
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试通过jQuery将数据发布到此控制器:

$.post('/Test/Testing', {test_data: 'This is some test data'});
Run Code Online (Sandbox Code Playgroud)

好的,这很有效.响应返回死亡的典型黄色屏幕,并且错误被捕获并记录在Elmah中.

但是,如果我尝试发布类似XML/HTML的内容,则Elmah中不会记录错误.我仍然从服务器后面得到相同的响应(死亡的黄色屏幕),但在Elmah中没有任何内容.

$.post('/Test/Testing', {test_data: '<test><test1>This is some test data</test1></test>'});
Run Code Online (Sandbox Code Playgroud)

为什么?这没有意义.

请注意,我已经关闭了操作的请求验证.如果我不这样做,那么发布XML/HTML数据会导致此异常:

从客户端检测到潜在危险的Request.Form值

NuGet也会拒绝记录该异常 - 我认为这是一个错误:

http://code.google.com/p/elmah/issues/detail?id=217

那么我遇到的这个问题的原因是什么?它是一个与我上面发现的问题相关的错误?

我只是因为请求包含XML/HTML而无法记录异常,这似乎是一个非常不幸的情况.

当然有办法解决这个问题吗?

error-handling asp.net-mvc elmah asp.net-mvc-4

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

如何从谷歌地图Javascript V3中的谷歌地图泡泡中删除滚动条

我使用谷歌地图javascript V3 API来显示地图.但我对地图气泡有问题.当气泡中的信息超过特定高度时,它会将滚动条插入气泡中.

如何删除这些滚动条并根据其内容为气泡指定动态宽度和高度?

或者我如何设计我自己的自定义气泡,使其根据内容的宽度和高度动态?

提前致谢.

height google-maps popup

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

是否可以自动在故事板中本地化UITabBarItem文本?

我是原生iOS开发的新手,并且一直在玩本地化的故事板.

我通过更新故事板的文件来本地化我的故事板中的文本UILabelUIButton对象Main.strings:

// UIButton:
"cEx-Yi-RY8.normalTitle" = "Done";

// UILabel:
"1l2-H9-hRc.text" = "Safety information!";
Run Code Online (Sandbox Code Playgroud)

我怎么做同样的UITabBarItem?我试过了:

//UITabBarItem:
"oSH-y1-hFoB.title" = "Scan";
Run Code Online (Sandbox Code Playgroud)

但它不起作用:(

我不明白为什么......我可以看到可以在UITabBarController中手动更新文本:

- (void)viewDidLoad
{
    //...
    item.title = NSLocalizedString(@"scan", nil);
}
Run Code Online (Sandbox Code Playgroud)

但后来我必须将这些翻译放在一个单独的Localizable.strings文件中,这似乎很蹩脚.

另一方面,至少翻译Localizable.strings有些可读,"scan" = "Scan";而不是"oSH-y1-hFoB.title" = "Scan";......

仍然......我没有关注为什么有些东西在Interface Builder中工作,但其他东西没有,你必须手动完成.

我讨厌必须添加所有这些样板代码来做重复的事情,比如在UI中本地化文本,当框架应该只能为我做.(如果它可以为UIButton做,为什么不是UITabBarItem ...)

或者我只是忽略了什么?

localization objective-c nslocalizedstring ios uistoryboard

9
推荐指数
2
解决办法
3970
查看次数

由于XML节点的排序不正确,DataContract反序列化失败

我对DataContractSerializer的行为感到困惑.我们的配置基于XML.XML用作DataContractSerializer.ReadObject方法的源.最近,当没有设置反序列化对象的某些属性时,我遇到了一个问题.我已跟踪更改并发现这些属性已手动添加到XML中.在我看来哪个好.显然,在DataContractSerializer看来它不行,因为它似乎期望XML节点按字母顺序排序.真?!反序列化似乎非常简单 - 按顺序读取XML,解析节点名称,设置相应的属性.订购的目的是什么?

有解决方法吗?也许是DataContractSerializer的某种设置?

c# xml wcf datacontractserializer

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

localStorage不能持久存在于OSX应用程序中(Xcode 4.3)

根据我的看法,如果您正在构建OSX桌面HTML5应用程序并希望localStorage在WebView包装器中持久存在,则需要执行以下操作:

WebPreferences* prefs = [webView preferences];
[prefs _setLocalStorageDatabasePath:@"~/Library/Application Support/MyApp"];
[prefs setLocalStorageEnabled:YES];
Run Code Online (Sandbox Code Playgroud)

摘自:如何在基于WebKit的应用程序中启用本地存储?

但在Xcode 4.3中,这似乎对我没有用.相反,我得到了

"No visible @interface for 'WebPreferences' declares the selector '_setLocalStorageDatabasePath:'
"No visible @interface for 'WebPreferences' declares the selector 'setLocalStorageEnabled:'
Run Code Online (Sandbox Code Playgroud)

我对Objective C很新,并且可能正在做一些愚蠢的事情,比如不包括一些标题或其他东西.

我已经包含了WebKit框架和这两个标头:

#import <WebKit/WebKit.h>
#import <WebKit/WebPreferences.h>
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我可以访问其他prefs方法,即[prefs setDefaultFontSize:10]- 但不是我列出的上述两种方法.

有任何想法吗?这是Xcode 4.3中删除的内容吗?

macos webkit objective-c local-storage xcode4.3

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

当安装了fugitive.vim插件时,在Cygwin下Vim启动速度极慢

我刚刚开始通过puttycyg在cygwin下运行Vim.我觉得这比windows下的gVim要好得多;)

无论如何,fugitive.vim插件导致Vim需要15-20秒才能启动.Vim启动后,一切看起来都很正常.从那时起我可以正常使用fugitive.vim.

造成这种缓慢的原因是什么?与cygwin有关我敢打赌......有什么想法吗?

windows vim cygwin puttycyg vim-fugitive

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

使用Cygwin和MinTTY的Unicode不起作用

我不明白为什么unicode不能在我的MinTTY终端中工作.我使用的是Windows XP

我有Cygwin v1.7.10和MinTTY v1.0.3.我也使用zsh shell(通过"oh-my-zsh")

我在MinTTY设置对话框中将local设置为"en_US"并将字符设置为"UTF-8".

当我在MinTTY终端时,这是以下环境变量的输出:

echo $LC_ALL
*nothing*

echo $LC_CTYPE
en_US.UTF-8

echo $LANG
en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

然而,当我用unicode查看文件时,我看不到符号.同样,"oh-my-zsh"的默认提示使用unicode,但也无效.

有谁知道什么可能是错的?

任何人都可以确认unicode在类似的设置上工作吗?

unicode cygwin windows-xp zsh mintty

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