我试图将"this"从点击的跨度传递给jQuery函数,然后jQuery函数可以在该被点击元素的第一个子元素上执行jQuery.似乎无法做对......
<p onclick="toggleSection($(this));"><span class="redClass"></span></p>
Run Code Online (Sandbox Code Playgroud)
使用Javascript:
function toggleSection(element) {
element.toggleClass("redClass");
}
Run Code Online (Sandbox Code Playgroud)
我如何引用元素的第一个子元素?
我见过不同的开发人员在javascript函数之后包含分号,而有些则没有.哪个是最佳做法?
function weLikeSemiColons(arg) {
// bunch of code
};
Run Code Online (Sandbox Code Playgroud)
要么
function unnecessary(arg) {
// bunch of code
}
Run Code Online (Sandbox Code Playgroud) 我有一个包含许多输入元素的表单.一些是附加了jQuery UI datepicker alraedy的日期字段:
$("#someElement").mask("9?9/99/9999").datepicker({showOn: 'button', buttonText:'Click here to show calendar', duration: 'fast', buttonImageOnly: true, buttonImage: /images/calicon.gif' });
Run Code Online (Sandbox Code Playgroud)
然后我有一个绑定到此函数的键命令:
function openCalendar() {
var selection = document.activeElement;
// { Need to test here if datepicker has already been initialized
$(selection).datepicker("show");
// }
}
Run Code Online (Sandbox Code Playgroud)
这适用于已经有日期选择器的元素.但是任何其他字段都会抛出一个javascript错误.我想知道最好的方法来测试是否已经在该字段上初始化了datepicker.
在第一次使用内置开发人员工具的IE8之后,我注意到jQuery将一个属性附加到我的一些元素上: alt text http://thebe.jtan.com/~vince/stack/jquery.PNG
我以前从未注意过这一点.事实上,这并没有出现在Firebug中...我现在只是第一次在IE8开发者工具中看到它.有谁知道jQuery使用它的原因,以及为什么它隐藏在firebug中?
我想在我的ASP.NET MVC应用程序中存储一个简单对象(包含三个字符串)的小列表.该列表是从数据库加载的,并且很少通过编辑站点管理区域中的某些值来更新.
我正在考虑使用HttpContext.Current.Application来存储它.这样我可以在Global.asax中加载它:
protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
HttpContext.Current.Application["myObject"] = loadDataFromSql(); // returns my object
}
Run Code Online (Sandbox Code Playgroud)
然后可以根据需要从任何控制器或视图轻松引用它.然后,如果管理区域调用updateMyObject控制器操作,我可以更新数据库并再次加载并替换HttpContext.Current.Application["myObject"]
.
这样做有什么缺点吗?看起来它会对我想要实现的目标起作用,但是有没有人知道更好的方法来做到这一点,假设我已经列出的方法有一些主要的缺点?
我想知道是否可以在对方法的调用中有条件地添加参数.
例如,我在我的Site.Master中渲染一堆链接(总共六个)用于导航:
<%= Html.ActionLink("About", "About", "Pages") %> |
<%= Html.ActionLink("Contact", "Contact", "Pages") %>
<%-- etc, etc. --%>
Run Code Online (Sandbox Code Playgroud)
如果它在该页面上,我想为链接包含一个"选定"的CSS类.所以在我的控制器中我回来了:
ViewData.Add("CurrentPage", "About");
return View();
Run Code Online (Sandbox Code Playgroud)
然后在视图中我有一个htmlAttributes字典:
<% Dictionary<string,object> htmlAttributes = new Dictionary<string,object>();
htmlAttributes.Add("class","selected");%>
Run Code Online (Sandbox Code Playgroud)
现在我唯一的问题是如何为正确的ActionLink包含htmlAttributes.我可以通过这种方式为每个链接做到这一点:
<% htmlAttributes.Clear();
if (ViewData["CurrentPage"] == "Contact") htmlAttributes.Add("class","selected");%>
<%= Html.ActionLink("Contact", "Contact", "Pages", htmlAttributes) %>
Run Code Online (Sandbox Code Playgroud)
但这似乎有点重复.有没有办法做这样的psuedo代码:
<%= Html.ActionLink("Contact", "Contact", "Pages", if(ViewData["CurrentPage"] == "Contact") { htmlAttributes }) %>
Run Code Online (Sandbox Code Playgroud)
这显然不是有效的语法,但有没有正确的方法呢?我对提供这些链接的任何完全不同的建议持开放态度.我想继续使用像ActionLink这样的东西,利用我的路线,而不是硬编码标签.
每个人都认为较少的DOM元素意味着更好的页面性能.这意味着更好的javascript性能,尤其是在旧版浏览器中.
但是,减少DOM元素的最佳位置在哪里?你们遇到的常见罪魁祸首是如何轻松修复这个数字?
我正在尝试动态更改页面上的嵌入视频.它在Firefox中工作但由于某种原因它不适用于IE和Chrome(奇怪的组合).这是HTML:
<object id="viewer" width="575" height="344">
<param name="wmode" value="transparent" />
<param name="movie" value="http://www.youtube.com/v/Lmn94kn08Lw&hl=en&fs=1&color1=0x006699&color2=0x54abd6&rel=0" />
<param name="allowFullScreen" value="true" />
<embed id="embeddedPlayer" src="http://www.youtube.com/v/Lmn94kn08Lw&hl=en&fs=1&color1=0x006699&color2=0x54abd6&rel=0" type="application/x-shockwave-flash" allowfullscreen="true" width="575" height="344" wmode="transparent"></embed>
</object>
Run Code Online (Sandbox Code Playgroud)
这是我的javascript代码.单击链接以更改视频:
$("#video a").click(
function() {
var videoAddress = $(this).attr("href");
$("#embeddedPlayer").attr("src", videoAddress);
return false; // stop the default link so it just reloads in the video player
}
);
Run Code Online (Sandbox Code Playgroud)
就像我说的那样,视频在Firefox中完美变化,但在IE和Chrome中没有任何反应.有任何想法吗?
使用C#,最有效的方法是什么?
string one = "(999) 999-9999";
string two = "2221239876";
// combine these into result
result = "(222) 123-9876"
Run Code Online (Sandbox Code Playgroud)
字符串一将始终有9.
我正在考虑在字符串1上使用某种foreach,当它看到9时,将其替换为字符串2中的下一个字符.不太确定从那里去哪里...
我试图将默认架构/实例指定为连接字符串(或特定命令)的一部分,因此它不需要是查询的一部分.
OdbcConnection conn = new OdbcConnection("Driver={IBM DB2 ODBC DRIVER}; Database=myDB; Hostname=myHostName; Port=myPort; Protocol=TCPIP; Uid=myID; Pwd=myPW;");
OdbcCommand comm = new OdbcCommand("select count(*) from customers", conn);
conn.Open();
var value = comm.ExecuteScalar();
conn.Close();
Run Code Online (Sandbox Code Playgroud)
不幸的是,这失败了,错误:
ERROR [42S02] [IBM] [CLI驱动程序] [DB2] SQL0204N 本身份识别码 .customers是一个未定义的名称.SQLSTATE = 42704.
注意它使用的是模式/实例所在的myID.如果我指定架构/实例明确:
OdbcCommand comm = new OdbcCommand("select count(*) from mySCHEMA.customers", conn);
Run Code Online (Sandbox Code Playgroud)
它按预期工作.我想指定mySCHEMA
连接字符串的一部分,类似于使用MS SQL Server时的"初始目录".
经过一系列的实验和谷歌搜索,我似乎无法弄明白.有任何想法吗?
我已经对此做了大量的研究并发现了一堆报告的问题和解决方案,但普遍的共识似乎是IE6中的所有更改问题都在jQuery 1.4.2中得到修复.
我遇到的问题是jQuery 1.4.2中没有触发更改事件,但它在jQuery 1.3.2中成功触发.这是在IE6中.
我准备为此提交一个错误,但为了我的理智,我想首先在这里发布它,看看是否有一些我不知道的愚蠢.我不明白为什么这样做......
<HTML>
<HEAD>
<TITLE>jQuery 1.4.2 Problem </TITLE>
<script src="jquery-1.4.2.min.js" type="text/javascript"></script>
<script>
$(document).ready( function() {
$("#firstBox").change(function() {
alert("CHANGE");
});
// ONLOAD of document autofocus into the first element...
$("form").find(":input:visible:first").focus()
});
</script>
</HEAD>
<BODY>
<form>
<select id="firstBox">
<option value="" selected="selected">--</option>
<option value="1">One</option>
<option value="2">Two</option>
</select>
<br><br>
<input size="10" id="secondBox">
</form>
</BODY>
</HTML>
Run Code Online (Sandbox Code Playgroud)
很简单吧?在页面上加载,给出第一个元素焦点.第一个元素的Onchange,警告.
如果您使用鼠标,它按预期工作.页面加载,焦点在下拉,您更改选项,您获得警报.
问题是如果你使用键盘.页面加载,焦点在下拉列表中,按下向下箭头.选项更改.关闭该字段,没有警报.奇怪的.为了使它更奇怪,如果你回到字段并再次更改它(全部使用键盘),更改事件将在此时标签之后触发.
有任何想法吗?
我有一个使用代码的数据库.每个代码的长度可以是两个字符到十个字符.
在MS SQL Server中,使用char(10)
这些代码和RTRIM它们的性能是否更好,或者我应该使用varchar(10)
而不必担心修剪额外的空白?我需要摆脱空白,因为代码将在应用程序逻辑中用于比较,而不是.
至于平均代码长度,很难说清楚.假设所有代码都是1到10之间的随机长度.编辑:对于代码的平均长度,粗略估计约为4.7个字符.
jquery ×5
c# ×4
javascript ×4
asp.net-mvc ×2
dom ×2
performance ×2
actionlink ×1
bug-tracking ×1
char ×1
conditional ×1
datepicker ×1
db2 ×1
embed ×1
firebug ×1
html ×1
httpcontext ×1
jquery-ui ×1
parameters ×1
replace ×1
sql-server ×1
string ×1
syntax ×1
varchar ×1
video ×1