jquery - 在 MVC3 中创建动态 jQuery 选择器

标签 jquery asp.net-mvc-3

这看起来很奇怪,很可能是某个地方的 PEBKAC...我正在尝试创建一个 jQuery 函数,该函数通过 Id 作用于页面元素,其中 Id 由来自 MVC3 站点的模型填充。

我有一个使用 Ajax 回发助手的表单,如下所示:

               <div id="rsvp_@(Model.Meeting.Id)" class="rsvp">
                           <text>You coming or what?</text>
                           using (Ajax.BeginForm("Rsvp", "Member", new AjaxOptions() { InsertionMode = InsertionMode.Replace, UpdateTargetId = "meeting_" + Model.Meeting.Id, OnBegin = "TryRsvp();", OnSuccess = "DidRsvp();", OnFailure = "FailRsvp();"}))
                           {
                               @Html.HiddenFor(m => m.CurrentUser.Id);
                               @Html.HiddenFor(m => m.Meeting.Id);
                               <input type="submit" name="btnSubmit" value="Yes!" />
                               <input type="submit" name="btnSubmit" value="No" />
                           }
                 </div>

当调用其中一个提交按钮时,TryRsvp() 的 JavaScript 会触发:

function TryRsvp() {
    alert('trying to rsvp');
    $('#rsvp_@(Model.Meeting.Id)').toggle();      
    alert('did script');  
}

我收到了两个警报 - 但切换不起作用。

我查看了输出的代码,该行如下所示:

    $('#rsvp_323e52cc-3058-4bfd-9a4f-0cb9653ebe99').toggle();

看起来是正确的。

奇怪的是 - 如果我对该行进行硬编码(即我使用 firebug 查找生成的脚本,然后将其直接复制并粘贴到页面上),那么它就可以正常工作。然而,当 MVC3 动态生成时,它会失败 - 即使据我所知,生成的 JavaScript 是相同的。

这是怎么回事? MVC3 交付页面和脚本的方式是否有什么东西会在这里产生影响?

任何线索表示赞赏

最佳答案

查看代码,您可能已将 TryRsvp() 添加到主页,但这不起作用,因为在解析函数时该元素不存在于 DOM 中。

您需要指定类或将函数与表单一起输出。

关于jquery - 在 MVC3 中创建动态 jQuery 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16385191/

相关文章:

javascript - 从 Javascript 函数获取字符串

jquery - 获取2个字符之间的所有字符串

asp.net-mvc-3 - 创建规范 URL,包括 id 和 title slug

asp.net-mvc - 默认情况下将@Html.RadioButtonFor 设置为选中

c# - MVC3 扩展方法 <TModel, TValue>

javascript - 按下点赞按钮时 Facebook 出现错误

jquery - 如果文本溢出父元素,请添加类

jquery - 将元素拉伸(stretch)到填充的流体父级的全宽

asp.net-mvc - 如何使用 mvcSiteMapProvider 实现安全性?

javascript - MVC3 不显眼的验证 : how to remove/re-attach validation from a group of elements?