Javascript jqueryui对话框:动态OnClick侦听器

Javascript jqueryui对话框:动态OnClick侦听器,javascript,jquery,dynamic,modal-dialog,onclicklistener,Javascript,Jquery,Dynamic,Modal Dialog,Onclicklistener,如何在JQuery中为UI对话框动态启动OnClick事件 每个SVG rect元素1、2、…、1000都应该能够打开此对话框,同时还应该提交一个参数或ID来标识单击了哪个SVG 相关的JS代码如下所示: $(function() { $( "#request_1" ) .click(function() { createForm(); $( "#dialog-form" ).dialog( "open" );

如何在JQuery中为UI对话框动态启动OnClick事件

每个SVG rect元素1、2、…、1000都应该能够打开此对话框,同时还应该提交一个参数或ID来标识单击了哪个SVG

相关的JS代码如下所示:

$(function() {
    $( "#request_1" )
        .click(function() {
            createForm();
            $( "#dialog-form" ).dialog( "open" );       
    });
/*....*/
};
<svg version="1.1" width="720" height="125">
    <rect id="request_1" x="180.5" y="15" width="39" height="15">
    </rect>
</svg>

<svg version="1.1" width="720" height="125">
    <rect id="request_2" x="180.5" y="15" width="39" height="15">
    </rect>
</svg>

/*[...]*/

<svg version="1.1" width="720" height="125">
    <rect id="request_1000" x="180.5" y="15" width="39" height="15">
    </rect>
</svg>
相关的HTML代码如下所示:

$(function() {
    $( "#request_1" )
        .click(function() {
            createForm();
            $( "#dialog-form" ).dialog( "open" );       
    });
/*....*/
};
<svg version="1.1" width="720" height="125">
    <rect id="request_1" x="180.5" y="15" width="39" height="15">
    </rect>
</svg>

<svg version="1.1" width="720" height="125">
    <rect id="request_2" x="180.5" y="15" width="39" height="15">
    </rect>
</svg>

/*[...]*/

<svg version="1.1" width="720" height="125">
    <rect id="request_1000" x="180.5" y="15" width="39" height="15">
    </rect>
</svg>
问题来自此示例,您可以在其中找到完整的源代码:

想象一下你会有1000个不同的按钮

有什么想法吗? 我想使用简单的onClick是一个解决方案,但是如何启动.click函数呢


谢谢你帮助我

如果要添加动态元素,请使用live函数为新元素附加事件,如下所示:

$(function() {
    $( "#request_1" ).live('click',function() {
            createForm();
            $( "#dialog-form" ).dialog( "open" );       
    });
/*....*/
};

如果要添加动态元素,请使用live函数为新元素附加事件,如下所示:

$(function() {
    $( "#request_1" ).live('click',function() {
            createForm();
            $( "#dialog-form" ).dialog( "open" );       
    });
/*....*/
};
将click绑定到rect或将类添加到rect并将click事件绑定到该类

$( "rect" ).click(function() {
  $( "#dialog" ).dialog( "open" );
});
如果是动态添加的元素,请使用:

演示:

将click绑定到rect,或者将类添加到rect并将click事件绑定到该类

$( "rect" ).click(function() {
  $( "#dialog" ).dialog( "open" );
});
如果是动态添加的元素,请使用:

演示:

.live已在jQuery 1.9+中被弃用并删除,您应该改为使用。live已在jQuery 1.9+中被弃用并删除,您应该改为使用。谢谢!!这个很好用!您知道如何提交任何参数吗?例如单个RECT元素的独立ID?提交是什么意思?您希望填充什么元素?要获取id,请在任一示例中使用$this.attr'id'。一旦我单击id=1000的rect,我的JS代码应该能够读取该值。在此id之前,应加载特定数据,例如名称。所以我需要知道,单击了哪个rect。用于查找有关所选元素的信息。要获取元素的id,请使用$this.attr'id'。这也是一个值得研究的问题。希望这有帮助!非常感谢。这个很好用!您知道如何提交任何参数吗?例如单个RECT元素的独立ID?提交是什么意思?您希望填充什么元素?要获取id,请在任一示例中使用$this.attr'id'。一旦我单击id=1000的rect,我的JS代码应该能够读取该值。在此id之前,应加载特定数据,例如名称。所以我需要知道,单击了哪个rect。用于查找有关所选元素的信息。要获取元素的id,请使用$this.attr'id'。这也是一个值得研究的问题。希望这有帮助!