【问题标题】:Reuse an onclick event重用 onclick 事件
【发布时间】:2015-05-09 14:49:54
【问题描述】:

在现有应用程序中,我可以选择添加一些 jQuery 代码,但不能更改现有代码。该应用程序有几个具有唯一 ID 的按钮。现在根据单击哪个按钮,我想在标准 onclick 函数旁边触发一个附加事件。

默认按钮代码为:

'<button id="btnReopen" class="exButton" type="button" onclick="SysSet('BCAction', 7); SysSet('IgnoreValidationErrors', 1); SysSet('RQ_Reopen', 1); SysSet('Status', 0); SysSubmit(); fnSaveForm();" onmouseover="this.className='exButtonOver'" onmouseout="this.className='exButton'" onmousedown="this.className='exButtonDown'" accesskey="3" title="ALT 3 - Reopen" style="vertical-align:middle;"><span>Reopen</span></button>'

我想要的是,当单击此按钮时,会启动一个带有特定 URL 的附加窗口。我尝试了类似下面的脚本,但是在页面加载和同一窗口中立即触发

<script type="text/javascript">
    jQuery( document).delegate( "#dCalc input[type='button']", "click",
        function(e){
        var idClicked = this.id;
    });

    if(idClicked = "BtnReopen") {
        window.location="WflRequest.aspx?BCAction=0&Type=0&Description=Hello";
    };
</script>

【问题讨论】:

  • var idClicked 是本地点击处理程序。如果您已经按照代码的建议使用了外域变量idClicked,则删除var idClicked = this.id; 中的var 语句,因此idClicked = this.id;。也就是说,您发布的代码逻辑在这里没有真正意义,缺少一些上下文以使其更清晰
  • 感谢您的回复。如果您说代码没有意义,我相信您。你需要什么上下文?基本上我有2个问题要解决。 1)如何让点击特定按钮触发一个事件,这对我来说是个难题。 2)如何在新窗口中打开活动。我相信我可以找出 2,但对于前 1,我会感谢帮助。

标签: jquery onclick reusability


【解决方案1】:

.delegate() 已经过时了一段时间。你应该改用.on()

    <script type="text/javascript">
jQuery( document).on( "click", "#dCalc input[type='button']",
    function(e){
    var idClicked = this.id;
});
if(idClicked = "BtnReopen") {
window.location="WflRequest.aspx?BCAction=0&Type=0&Description=Hello";
} ;
</script>

【讨论】:

  • 这不能回答问题,您发布的代码将与 OP 的代码完全相同
【解决方案2】:

当按钮被点击时:

<script type="text/javascript">
jQuery('#btnReopen').click( function () {
     window.open('WflRequest.aspx?BCAction=0&Type=0&Description=Hello', '_blank');
});
</script>

【讨论】:

  • 完美!!正是我需要的。非常感谢
  • 很高兴它对您有所帮助。
猜你喜欢
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-11
  • 2019-01-07
  • 2016-05-09
  • 1970-01-01
相关资源
最近更新 更多