【问题标题】:jQuery Selector on Two Different Events [duplicate]两个不同事件上的jQuery选择器[重复]
【发布时间】:2017-09-08 00:33:07
【问题描述】:

我有以下html

<button type="button">btn</button>
<input type="text" value="txt" />

我也在做以下 jQuery 函数:

$('button').click(function() {
    // Do something
});

$('input[type=text]').change(function() {
    // Do the same thing as in button click
});

现在,我想将两个 jQuery 调用合二为一,遵循以下伪代码:

<$('button').click()> -- OR -- <$('input[type=text]').change()>
    // Do the common code

一个建议可能是执行以下操作

function do_something() {
    // Do common code
}

$('button').click(function() {
    do_something();
});

$('input[type=text]').change(function() {
    do_something();
});

这会起作用,但是我正在寻找“选择器事件”解决方案,而不是通用功能解决方案(即,我希望选择器和事件用于调用嵌入式函数)。我可以这样做吗?

谢谢。

【问题讨论】:

  • 既然你有两个不同的元素和两个不同的事件那么不,你提出的最后一个解决方案将是大多数人这样做的方式。
  • @j08691 - 我希望得到与您在评论中所说的不同的答案:(

标签: jquery jquery-selectors


【解决方案1】:

$(".event").on({
    input: function() {
        do_something();
    },
    click: function(e) {
        if (e.target.id == "btn") {
              do_something();
        }
    }
});

function do_something() {
    alert('I am Clicked so do common code here!');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="event" id="btn" type="button">btn</button>
<input class="event" id="input" type="text" name="myInput" value="txt" />

我只想用一行给出答案我们不能为不同的选择器(输入和按钮)调用两个不同的事件

【讨论】:

  • 您好,谢谢。按钮和文本框都对“点击”做出反应。请注意,我原来的问题中文本框的事件是“on change”,因此它是与按钮的“on click”不同的事件绑定。我认为这个答案行不通。
  • @Greeso 答案已更新!!!希望这会有所帮助:-)
  • 还是不行。文本框通过单击调用公共代码。这不应该发生,单击仅适用于按钮。输入正在更改.. 不过谢谢。
  • @Greeso Bro 答案已更新 :-) 这很棘手,但已经完成了!!!
  • 你好。好吧,现在你要解决我要求不要发生的原始问题,这是我一开始试图避免的通用函数do_something()(如果你阅读了这个问题,我试图有一个共同的两种类型事件的“内联”功能,而不是常见的“外部”功能。我真的非常感谢您的帮助并尝试解决问题。你真好。
猜你喜欢
  • 1970-01-01
  • 2015-09-25
  • 1970-01-01
  • 1970-01-01
  • 2013-01-11
  • 1970-01-01
  • 1970-01-01
  • 2017-07-23
  • 1970-01-01
相关资源
最近更新 更多