jqModal和jquery小部件帮助小部件不会触发

时间:2010-12-29 16:37:10

标签: jquery asp.net-mvc jquery-ui jqmodal

我刚刚在我的mvc应用程序中的jqmodals中开始使用jquery小部件。

最初,

  1. 我可以点击添加链接,获取提醒(“这是奖品”),然后点击取消关闭模式以获得所需结果。
  2. 然后,我可以点击编辑链接并获得相同的结果。
  3. 但是,如果我先单击编辑链接,然后尝试单击添加链接,“忘记它”我没有收到警报(这意味着我的小部件没有初始化)。
  4. 但我仍然可以返回并点击编辑并获得奖品(提示信息)。
  5. ajax:“/ Home / EditPrintAdLine”和ajax:“/ Home / AddPrintAdLine”最终将呈现相同的Web用户控件,其中包含窗口小部件中的元素(字段名称为PrintAdLine_RunDate) < / p>

    有什么想法吗?

    <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
    
    <asp:Content ID="indexTitle" ContentPlaceHolderID="TitleContent" runat="server">
        Home Page
    </asp:Content>
    
    <asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
    
        <div id="printAdLineEditDialog" class="jqmWindow"></div>
        <div id="printAdDialog" class="jqmWindow"></div>
    
        <table>   
        <tr><td><a id="printAdLineItem" href="#">Add a Line Item</a></td></tr>
        <tr><td><a id="editPrintAdLine" href="#">Edit</a></td></tr>        
        </table>
    
        <script type="text/javascript">
            $(document).ready(function() {
    
                $.widget("ui.my_widget", { _init: function() { alert("My widget was instantiated"); } });
    
                // Add line    
                $('#printAdDialog').jqm({
                    ajax: "/Home/AddPrintAdLine",
                    trigger: '#printAdLineItem',
                    onLoad: function(hash) {                    
                        $('#PrintAdLine_RunDate').my_widget();
                    }
                });
    
                // Edit line    
                $('#printAdLineEditDialog').jqm({
                    ajax: "/Home/EditPrintAdLine",
                    trigger: '#editPrintAdLine',
                    onLoad: function(hash) {
                        $('#PrintAdLine_RunDate').my_widget();
                    }
                });
            });
        </script>
    
    </asp:Content>
    

1 个答案:

答案 0 :(得分:0)

原来是一个范围问题。

$('#PrintAdLine_RunDate', 'printAdLineEditDialog').my_widget();

$('#PrintAdLine_RunDate', 'printAdDialog').my_widget();