javascript - 在 jquery 中将多个事件附加到单个处理程序的多个元素

标签 javascript jquery html

我想将一个click事件附加到'buttonID'选择器并将一个'onChange'事件附加到'dropDownID'选择器,因为对于这两个事件我想要执行相同的处理程序方法。 我厌倦了下面的代码,但发生的是点击和更改事件被绑定(bind)到按钮和下拉列表,所以为了在下拉列表中选择一个值,我单击它并且触发 AJAX 并且在更改 dropDownBox 的值后 agian 它将生成另一个 ajax称呼。当我尝试从下拉列表中选择一个值时,With-effect Ajax 被触发了两次。这不是所需的功能。 如下所示,我的意图是将按钮绑定(bind)到单击并更改为 dropDown。有没有一种方法可以使用 javascript 或 jQuery 完成此操作?我正在使用需要此功能的 JSP 页面。 $('#buttonId #dropDownId').bind('点击更改'函数(事件)) { AJAX 处理程序方法来执行某些操作。 });

点击here为演示目的使用虚拟数据创建的演示 fiddle 。

html:

     <input type="text" id= "accountId" name="account"/>
    <input type="button" id="buttonId"> Submit </input>
                        <br>    
     <select id= "accountType">
    <option value="COM" selected="true">COM </option>            
    <option value="CUR">CUR</option>             
    </select>
   <br>     
    <table id="myTable1">
    <thead>
                        <tr>
                            <th> <strong> something1</strong></th> 
                            <th> <strong>something2</strong></th> 
                         </tr>
                         </thead> 

                <tbody id="TbodyId"></tbody>
    </table>

JS:

            var a = $("#accountType");
    var b = $('#buttonId');
    var $combinedEvent = a.add(b) ;

    console.log("combined event" + $combinedEvent);

    $combinedEvent.bind('click change', function( event ){
    console.log("do something here");
        $('#myTable1').append('<tr><td> one  <td>        
           <td> two </td> </tr>');
       });

最佳答案

我不认为您可以在此处使用任何智能快捷方式。我能想到的最好的方法是将功能提取到单独的函数中,并将其作为 onclickonchange 的事件处理程序传递:

function action() {
    $('#myTable1').append('<tr><td> one<td><td> two </td> </tr>');
}

$("#accountType").on('change', action);
$('#buttonId').on('click', action);

演示:http://jsfiddle.net/Lv08z60m/

关于javascript - 在 jquery 中将多个事件附加到单个处理程序的多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25783986/

相关文章:

javascript - 在 jquery 日期选择器的 beforeShowDay 中添加 html

javascript - 如何选择/取消选择表中的行?

javascript - 如何在 VS code/Prettier 中为不同文件指定不同格式

javascript - 从字符串中获取特定的东西

jquery - MVC 5 与来自部分 View 验证的 Bootstrap Modal 不起作用?

javascript - 将非 AMD 兼容的 javascript 模块与 require.js 一起使用?

jQuery Superfish 菜单和 SEO

javascript - 更改跨度文本?

javascript - 如何根据是否存在另一个 CSS 类组合来更改 CSS 类?

javascript - 附加到最近的选择