我有一个jQuery循环遍历给定div(#container)中的每个元素,并在每次单击span时执行javascript警报.如果它<span>是静态的,这样可以正常工作.
但是,如果我使用一段代码,如:
$(someLink).click(function(){
$("#container").html( <new html with new spans> )
});
Run Code Online (Sandbox Code Playgroud)
jQuery代码没有启动.但奇怪的是
我的问题是:我的Click事件不适用于动态创建的项目吗?我假设我必须在我的文档就绪或heartbeat-script(每100毫秒触发一次)中添加一些内容来连接事件?
编辑我现在更改了一些Javascript,所以如果我能找到一个检测HTML5视频支持的javascript函数,它应该可以工作.
我有一个HTML5视频播放器,闪存后备,如果不支持HTML5,我希望它回退到闪存.我目前正在使用
<!--[if !IE]><!--> then load my custom player
else use SWFObject to render it.
是否有可能做到以下几点:
` If (HTML5 supported browser) {
<some html and script> (My custom player)
}else{
<different html and script> (I would call SWFobject here)
}
`
Run Code Online (Sandbox Code Playgroud)
试图找到一个很好的简单解决方案的想法.
通常我可以<object>在视频标签中添加一个额外的,但由于播放器插入页面的方式,这是不可能的.
即使我可以使用可能不可靠的方法检测HTML5支持,但我不确定如何根据支持的输出获取HTML
如何让我的视频播放器跳过/寻找到某个时间.我已经开始使用它,它可以在页面首次加载(在Chrome中)但在任何其他浏览器中都无效.我也有一个闪回落,这可能是一个痛苦,但目前优先考虑的事情的HTML方面主要问题是它在Chrome之外不起作用!
编辑:这现在适用于IE9,Chrome和Firefox.但是,不是闪存后备!
以下是我到目前为止的尝试.
到目前为止我正在使用以下JS:
<script language="javascript">
$(function () {
var v = $("#video").get(0);
$('#play').click(function(){
v.play();
});
$('.s').click(function(){
alert("Clicked: "+$(this).html() +"- has time of -" + $(this).attr('s') );
v.currentTime = $(this).attr('s'); v.play();
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
哪个链接到以下内容:
<video id="video" controls width="500">
<!-- if Firefox -->
<source src="video.ogg" type="video/ogg" />
<!-- if Safari/Chrome-->
<source src="video.mp4" type="video/mp4" />
<!-- If the browser doesn't understand the <video> element, then reference a Flash file. You could also write something like "Use a Better Browser!" if you're …Run Code Online (Sandbox Code Playgroud) 我正在通过Nuget在MVC3中尝试"SimpleMembership",并已下载了样本.问题是我无法弄清楚如何将角色分配给特定用户.
在标准MVC成员资格中,您可以使用以下内容:
Roles.AddUserToRole(model.UserName, "StandardUser");
Run Code Online (Sandbox Code Playgroud)
但是,SimpleMembership似乎只有一种方法可以暴露角色(除非我是愚蠢的!)
public void RequireRoles(params string[] roles)
{
WebSecurity.RequireRoles(roles);
}
Run Code Online (Sandbox Code Playgroud)
必须有一个简单的方法,因为下表是作为这个nuget包的一部分创建的:
-TABLE: webpages_Roles
RoleId , RoleName
Run Code Online (Sandbox Code Playgroud)
这有点令人困惑,但App_Start/SimpleMembershipMvc3.cs有以下几点:
Roles.Enabled = true;
RoleProvider provider3 = Roles.Providers["AspNetSqlRoleProvider"];
if (provider3 != null)
{
RoleProvider provider6 = provider3;
SimpleRoleProvider provider4 = CreateDefaultSimpleRoleProvider("AspNetSqlRoleProvider", provider6);
Roles.Providers.Remove("AspNetSqlRoleProvider");
Roles.Providers.Add(provider4);
}
Run Code Online (Sandbox Code Playgroud)
SimpleRoleProvider函数
private static SimpleRoleProvider CreateDefaultSimpleRoleProvider(string name, RoleProvider currentDefault)
{
RoleProvider previousProvider = currentDefault;
SimpleRoleProvider provider = new SimpleRoleProvider(previousProvider);
NameValueCollection config = new NameValueCollection();
provider.Initialize(name, config);
return provider;
}
Run Code Online (Sandbox Code Playgroud)
此软件包是否使用内置的角色提供程序?如果是这样,它如何与SimpleMembership创建的表挂钩
我使用另一个stackoverflow问题的代码片段:
namespace MvcHtmlHelpers
{
public static class htmlHelpers
{
/// <summary>
/// Radio button for : Adapted to support enum labels from display attributes
/// </summary>
/// <typeparam name="TModel"></typeparam>
/// <typeparam name="TProperty"></typeparam>
/// <param name="htmlHelper"></param>
/// <param name="expression"></param>
/// <returns></returns>
public static MvcHtmlString RadioButtonForEnum<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression
)
{
var metaData = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
var names = Enum.GetNames(metaData.ModelType);
var sb = new StringBuilder();
foreach (var name in names)
{
var id = string.Format(
"{0}_{1}_{2}",
htmlHelper.ViewData.TemplateInfo.HtmlFieldPrefix,
metaData.PropertyName, …Run Code Online (Sandbox Code Playgroud) 我在我的控制器中有一个viewdata,它由一个列表填充:
List<employee> tempEmpList = new List<employee>();
tempEmpList = context.employees.ToList();
ViewData["tempEmpList"] = tempEmpList;
Run Code Online (Sandbox Code Playgroud)
我将此传递到我的视图中,问题是,如何将viewdata列表的内容放入下拉列表?
显示数据将.name来自列表项.
我知道我可以foreach在Viewdata上创建一个选择列表,但这看起来有点长
我对MVC3相当不错,喜欢用它创建我的网站,但是,我还没有想到并实现一个"插件"系统的体面方法.
基本上,我的目标是拥有一个通用的"博客类型"CMS,我可以在我的网站上分发,但可以选择将某些内容作为插件.
例如:
通用构建:
插件:(可能需要一个或两个站点,但不是全部)
目前我只是通过一个配置文件完成所有功能并禁用它,但是如果我可以将一个文件夹放入我的FTP并拥有一个自动拾取它的MVC页面,这将是很好的!
我假设我必须从扫描目录"/ plugins"开始,然后选择一个包含基本细节的"plugin.config"(或类似的)文件.
但是,我如何让我的主系统选择这些东西并实际使用它们?!
在MSDN上使用此示例:
using System.Collections.Generic;
using System.IO;
namespace CollectionTest
{
public class ListSort
{
static void Main(string[] args)
{
List<FileInfo> files = new List<FileInfo>();
files.Add(new FileInfo("d(1)"));
files.Add(new FileInfo("d"));
files.Add(new FileInfo("d(2)"));
files.Sort(new CompareFileInfoEntries());
}
}
public class CompareFileInfoEntries : IComparer<FileInfo>
{
public int Compare(FileInfo f1, FileInfo f2)
{
return (string.Compare(f1.Name, f2.Name));
}
}
}
Run Code Online (Sandbox Code Playgroud)
我如何比较创建日期.
F1有一个属性"创建"日期,这是一个FileSystemInfo.Datetime,但是当我尝试这个时:
public class CompareFileInfoEntries : IComparer<FileInfo>
{
public int Compare(FileInfo f1, FileInfo f2)
{
return (DateTime.Compare(DateTime.Parse(f1.CreationTime), f2.CreationTime));
}
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了重载方法匹配String. compare(string,string)
注意:我在上面的脚本中使用了两种方法来尝试返回创建时间.两者都没有奏效 - 它们在我的实际剧本中都是相同的.
我能得到的最好的是:
return …Run Code Online (Sandbox Code Playgroud) 我们的产品目前通过4-5 MSI安装,这些MSI是.vdproj根据vs 2010项目的输出和合并模块中的其他信息创建的.
我一直在寻找InstallShield和WIX作为可能的替代品,因为VS2012不再支持VS Setup Projects(哦不!)所以我们必须找到别的东西.
我已经玩过InstallShield了,我无法真正掌握它,除了安装产品之外,安装程序还必须接受一些参数,如数据库名称和位置等.我不能似乎找到了将此信息导入InstallShield项目的方法 - 虽然这是为Visual Studio使用InstallSHield限量版
我不确定哪个最好用?有没有人有从VDPROJ转换为WIX或IS的经验?
编辑 看起来WIX将是最简单的,我正试图掌握它.我似乎无法找到任何有用的帖子,允许我将项目输出定向到我的WIX安装程序,以及如何创建变量.(不使用插件)
windows-installer installshield wix vdproj visual-studio-2010
我在MVC3中有一个页面,其模型为"pageModel".
在这个页面我有:
@{ Html.RenderPartial("_subPage", Model.subModel); } (Pagemodel.submodel)
Run Code Online (Sandbox Code Playgroud)
在我的控制器中我正在做:
[Authorize]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Results(pagemodel model, string frmAction)
{
}
Run Code Online (Sandbox Code Playgroud)
页面第一次加载正常,但是当我回发到httpPost动作时,model.submodel总是为空.
我的问题是,如何从RenderPartial返回更新的模型(如果有的话).我可以让我的模型INTO部分,但不能回来!