【问题标题】:JQuery function attached to Ajax ActionLink附加到 Ajax ActionLink 的 JQuery 函数
【发布时间】:2013-09-19 16:02:28
【问题描述】:

快速提问。

我有一个 Ajax.Action 链接,用于异步上传表单的下一部分。

@Ajax.ActionLink("Next" , "matches",null, new AjaxOptions {UpdateTargetId = "placeholder", InsertionMode = InsertionMode.InsertAfter,HttpMethod = "GET"}, new { @class = "button" })

我已经将我的“按钮”类应用到它上面,使它看起来像一个大按钮。 我希望将一个 JQuery .click 事件附加到上面的 AjaxAction 链接,以触发一个隐藏先前表单的函数。我正在使用下面的 JQuery 来执行此操作:

<script>
    $(document).ready(function () {
        $(this).closest("a.button").click(function () {
            $("form.common").hide();
        });

    });
</script>

这对我不起作用。 Ajax.ActionLink 工作正常,只是不是 Jquery。以下是我的页面的粗略细分。

<form class="common"> (this form needs to hide)
    //lots of inputs
 <ActionLink class="button>
</form>

<div id="placeholder">
(this is where the new form will be inserted)
</div>

我是 C# 和 JavaScript/JQuery 的新手,所以我希望有人可以在这里为我指明正确的方向。

【问题讨论】:

    标签: c# javascript jquery ajax


    【解决方案1】:

    您可以在 ajax 链接执行的 ajax 请求的开头调用 JS 方法,而不是使用 jQuery 的任何特殊事件。

    在链接AjaxOptions 中添加OnBegin 属性并为其分配一个JS 函数并执行该JS 函数中的逻辑

    Ajax 链接

    new AjaxOptions { OnBegin = "OnBegin" ... }
    

    JS

    function OnBegin() {
        $("form.common").hide();
    }
    

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      尝试直接定位您的元素,而不是使用最接近的。如果您还可以使用按钮 id 或分配更具描述性的类。

      $("a.action_button").click(function () {
         $("form.common").hide();
      });
      

      【讨论】:

      • 类名是button - 向右滚动代码可以看到它;)
      • 我知道我只是说要针对按钮直接相应地命名它,因为在许多情况下,您可以拥有许多带有类按钮的按钮。
      • 但您在示例中选择了带有 action_button 类的链接。那不是链接的类名。它应该是'a.button'
      • 我正在选择一个带有类 action_button 的链接。它的字面意思是我正在选择一个或多个具有该类而没有其他类的链接。 “按钮”作为类名非常通用,大多数 css 框架都使用它来将链接样式设置为按钮,因此您永远不应该依赖使用该类作为选择器。
      猜你喜欢
      • 2012-05-24
      • 1970-01-01
      • 2017-01-10
      • 1970-01-01
      • 1970-01-01
      • 2016-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多