在jquery中创建按钮触发器功能

时间:2012-12-12 18:50:42

标签: jquery html

我有以下jQuery代码:

$("#btnReset").click(function () {
    ColReorder.fnReset(oTable);
    return false;
});

HTML如下:

<div style="padding: 5px 5px 1px 0px; float: right" id="globalbutton-row" class="ex">
    <button class="button" type="button" id="btnReset"><%=rb.getString("button.reset")%></button>
    <button class="button" type="button" id="btnDeveloperSampleMenu" onclick="javascript:CallDeveloperSampleMenu()"><%=rb.getString("button.devsamplemenu")%></button>
</div>

我想要按钮&#39;重置&#39;启动函数ColReOrder.fnReset但由于某种原因这不起作用。

3 个答案:

答案 0 :(得分:2)

您必须小心不要在尚未加载的DOM中引用任何内容。如果在您的代码被触发之前未将<button>加载到DOM中,则不会发生任何事情。您可以通过在加载所有内容时运行代码来解决此问题:

$(document).ready(function() {
  $("#btnReset").click( function () {
    ColReorder.fnReset( oTable );
    return false;
  } );
});

如果通过AJAX或其他方式添加<button>,您将遇到同样的问题。您可以使用on()方法解决此问题:

$(document).ready(function() {
  $(document).on('click',"#btnReset", function(event) {
    ColReorder.fnReset( oTable );
    return false;
  } );
});

答案 1 :(得分:1)

尝试使用事件委派。当你的javascript被执行时,元素没有被加载到dom中。将click事件附加到文档将使代码工作,方法是在单击时单击然后搜索选择器。

$(document).on('click','#btnReset',function () {
  ColReorder.fnReset( oTable );
  return false;
  } );

答案 2 :(得分:0)

您必须在加载文档后执行代码。

$(function() {
  $("#btnReset").click( function () {
    ColReorder.fnReset( oTable );
    return false;
  });
});