假设我有一些jQuery代码,它将事件处理程序附加到具有类"myclass"的所有元素.例如:
$(function(){
$(".myclass").click( function() {
// do something
});
});
Run Code Online (Sandbox Code Playgroud)
我的HTML可能如下:
<a class="myclass" href="#">test1</a>
<a class="myclass" href="#">test2</a>
<a class="myclass" href="#">test3</a>
Run Code Online (Sandbox Code Playgroud)
这没有问题.但是,请考虑是否在将来某个时间将"myclass"元素写入页面.
例如:
<a id="anchor1" href="#">create link dynamically</a>
<script type="text/javascript">
$(function(){
$("#anchor1").click( function() {
$("#anchor1").append('<a class="myclass" href="#">test4</a>');
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,当用户点击#anchor1时会创建"test4"链接.
"test4"链接没有与之关联的click()处理程序,即使它具有class ="myclass".
知道如何解决这个问题吗?
基本上,我想编写一次click()处理程序,并将其应用于页面加载时出现的内容和稍后通过Ajax/DHTML引入的内容.
我在我的网站中使用jQuery,并且当某个div可见时我想触发某些操作.
是否有可能将某种"isvisible"事件处理程序附加到任意div并且在div可见时运行某些代码?
我想要像下面的伪代码:
$(function() {
$('#contentDiv').isvisible(function() {
alert("do something");
});
});
Run Code Online (Sandbox Code Playgroud)
在实际使contentDiv可见之前,不应触发警报("执行某些操作")代码.
谢谢.
我想在IIS7中为我的ASP.NET网站中的静态内容缓存设置规则.
我已经看过这些文章,详细介绍了如何使用以下<clientCache />
元素web.config
:
但是,此设置似乎全局适用于所有静态内容.有没有办法只为某些目录或扩展这样做?
例如,我可能有两个需要单独缓存设置的目录:
/static/images
/content/pdfs
是否有可能建立规则发送缓存头(max-age
,expires
基于扩展和文件夹路径等)?
请注意,我必须能够这样做,web.config
因为我无法访问IIS控制台.
我应该使用Dictionary <string,string>而不是NameValueCollection的任何原因?
(在C#/ .NET Framework中)
选项1,使用NameValueCollection:
//enter values:
NameValueCollection nvc = new NameValueCollection()
{
{"key1", "value1"},
{"key2", "value2"},
{"key3", "value3"}
};
// retrieve values:
foreach(string key in nvc.AllKeys)
{
string value = nvc[key];
// do something
}
Run Code Online (Sandbox Code Playgroud)
选项2,使用Dictionary <string,string> ...
//enter values:
Dictionary<string, string> dict = new Dictionary<string, string>()
{
{"key1", "value1"},
{"key2", "value2"},
{"key3", "value3"}
};
// retrieve values:
foreach (KeyValuePair<string, string> kvp in dict)
{
string key = kvp.Key;
string val = kvp.Value;
// do …
Run Code Online (Sandbox Code Playgroud) 在.NET中,以下语句返回不同的值:
Response.Write(
TimeZoneInfo.ConvertTime(
DateTime.Parse("2010-07-01 5:30:00.000"),
TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"),
TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time"))
);
// displays 7/1/2010 1:30:00 PM
Run Code Online (Sandbox Code Playgroud)
..还有这个...
Response.Write(
TimeZoneInfo.ConvertTime(
DateTime.Parse("2010-07-01 5:30:00.000"),
TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"),
TimeZoneInfo.FindSystemTimeZoneById("UTC"))
);
// displays 7/1/2010 12:30:00 PM
Run Code Online (Sandbox Code Playgroud)
为什么是这样?我认为UTC和GMT标准时间相当.
更新
经过进一步测试,我发现以下内容似乎是等效的:
"世界标准时间"
"格林威治标准时间"
"摩洛哥标准时间"
而在夏季,以下情况有所不同:
"GMT标准时间"
也许我的问题应该是,为什么"格林威治标准时间"和"格林威治标准时间标准时间"有所不同?
结束更新
我正在使用JavaScriptSerializer来序列化一些实体对象.
问题是,许多公共属性包含null或默认值.有没有办法让JavaScriptSerializer排除属性为null或默认值?
我希望生成的JSON不那么冗长.
我们在某些字符串上调用ToLower()时发现了一个奇怪的错误.
输入字符串是:
string s = "DocumentInfo";
string t = s.ToLower();
// sometimes, t == documentinfo
// other times, t == document?nfo (note dot is missing from i - INCORRECT)
Run Code Online (Sandbox Code Playgroud)
我们将字符串传递给下游的Web服务查询,因此它给我们带来了问题.
我最初的猜测是它与Culture或UICulture有关,因为我们的一些页面为每个用户定制这些设置.
这可能是问题吗?有没有办法可以强迫它正常工作?
更新2011.07.06
我发现我可以通过将Culture设置为tr-TR来复制该问题.不确定其他文化是否会受到影响.
使用集成管道,所有请求都通过ASP.NET传递,包括图像,CSS.
然而,在传统的管道中,默认情况下只对ASPX页面的请求通过ASP.NET传递.
集成管道会对线程使用产生负面影响吗?
假设我从IIS服务器请求500 MB二进制文件:
对我来说,这有利于传统的管道,因为我希望尽可能多的线程来提供ASPX页面.
我完全不在这里吗?
我想加密ASP.NET中的cookie.
我已经按照本文中的方法进行了操作,但它的缺点是在内部方法上使用了反射.这导致它在代码审查中被标记 - 由于内部实现可能会发生变化,因此无法面向未来.
是否有一种具有相同功能的方法,不需要对内部方法使用加密?
我正在使用.NET Framework 3.5 SP1(假设我无法更改框架版本)
我正在测试一个ASP.NET Web表单,它需要从输入中过滤掉空字符.
要测试此功能,我如何在html表单中实际键入空字符?我已经尝试过Alt + 0但它不起作用.
我知道我可以通过在URL中使用"%00"在GET请求中执行此操作.但是,我想以POST形式执行此操作.
c# ×4
.net ×3
asp.net ×2
iis ×2
iis-7 ×2
javascript ×2
jquery ×2
caching ×1
collections ×1
cryptography ×1
culture ×1
dhtml ×1
dictionary ×1
encryption ×1
events ×1
forms ×1
gmt ×1
html ×1
http-headers ×1
json ×1
pipeline ×1
string ×1
timezone ×1
utc ×1
web-config ×1