Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery:将同一事件附加到同一页面上的多个控件_Jquery_Modalpopup - Fatal编程技术网

jQuery:将同一事件附加到同一页面上的多个控件

jQuery:将同一事件附加到同一页面上的多个控件,jquery,modalpopup,Jquery,Modalpopup,我有一个表格,在这个表格上,某些问题有特殊的css类与之关联。现在,在document.ready上,我有$('.cssclassname')。在上,我通过ajax调用并显示该类行中返回的数据 返回的组件之一是一个按钮,单击该按钮将显示jQuery modalpoup,并在我的$('.cssclassname')中获取数据。在上,我附加我的modalpoup事件,以便modalpoup通过该按钮单击正确工作 现在我面临的问题是,有时候,我的页面上有3-4个按钮,每次我点击1个按钮,打开modal

我有一个表格,在这个表格上,某些问题有特殊的
css
类与之关联。现在,在
document.ready
上,我有
$('.cssclassname')。在
上,我通过
ajax
调用并显示该类行中返回的数据

返回的组件之一是一个按钮,单击该按钮将显示
jQuery modalpoup
,并在我的
$('.cssclassname')中获取数据。在
上,我附加我的modalpoup事件,以便
modalpoup
通过该按钮单击正确工作

现在我面临的问题是,有时候,我的页面上有3-4个按钮,每次我点击1个按钮,打开modalpopup的代码就会运行x次(其中x是按钮数)。我认为问题在于modalpoup具有相同的类,并且由于x个按钮的数量,我附加了x次相同的事件

他们有没有办法解决这个问题,我只附加一个特定的事件函数,每页加载一次

我在解释这个问题时有点困惑,但请让我知道任何人都可以在这方面帮助我,或者需要更多的澄清


谢谢,这是一种最简单的方法,因此可以为所有具有此行为的按钮添加一个类,并一次性绑定它们

 <button id='modalTrigger1' class='modelPopupTrigger'>Click</button>
 <button id='modalTrigger2' class='modelPopupTrigger'>Click</button>
 <button id='modalTrigger3' class='modelPopupTrigger'>Click</button>
或者,您可以将函数分配给变量,并重用该函数进行绑定

 $(function(){
      var modelHandler = function(){... handler...};

      $("#button1").on("click", modelHandler);
      $("#button2").on("click", modelHandler);
 });

最简单的方法是,向所有具有此行为的按钮添加一个类并一次性绑定它们

 <button id='modalTrigger1' class='modelPopupTrigger'>Click</button>
 <button id='modalTrigger2' class='modelPopupTrigger'>Click</button>
 <button id='modalTrigger3' class='modelPopupTrigger'>Click</button>
或者,您可以将函数分配给变量,并重用该函数进行绑定

 $(function(){
      var modelHandler = function(){... handler...};

      $("#button1").on("click", modelHandler);
      $("#button2").on("click", modelHandler);
 });

据我所知,您有两种选择:

  • 使用
    .off()
    重新绑定事件之前先解除绑定事件(奇怪)
  • 将委派与.on()一起使用:

    $(文档)。在(“单击”、“.className”, 函数(){})


    • 据我所知,您有两种选择:

      • 使用
        .off()
        重新绑定事件之前先解除绑定事件(奇怪)
      • 将委派与.on()一起使用:

        $(文档)。在(“单击”、“.className”, 函数(){})


      这是打字错误:$('cssclassname')。在吗?应为$('.cssclassname')。on@roasted:这只是一个输入错误,我仍然会更正它。这解决了我的问题。这是我在回答中告诉你的:“在使用.off()(怪异)重新绑定事件之前先解除绑定”。@broading:示例或语法将非常有用,无论如何,谢谢。我不知道如何解除绑定然后再绑定..这是一个输入错误:$('cssclassname')。on?应为$('.cssclassname')。on@roasted:这只是一个输入错误,我仍然会更正它。这解决了我的问题。这是我在回答中告诉你的:“在使用.off()(怪异)重新绑定事件之前先解除绑定”。@broading:示例或语法将非常有用,无论如何,谢谢。我不知道怎样解开然后再绑起来。。