为多个类调用单个函数

时间:2018-05-23 05:12:34

标签: javascript jquery html css

我有两个按钮:一个带有课程btn-star,另一个带有btn-current。我在每次点击时都会调用一个独立的函数。但是现在,我想在调用它们时只调用一个函数。

我的代码与此类似:

$('document').ready(() => {
 $(document).on('click', '.btn-star', function () {
    // Do stuff
 }
 $(document).on('click', '.btn-current', function () {
    // Do stuff
 }
}

8 个答案:

答案 0 :(得分:2)

您可以尝试使用此代码。您只需使用一个行代码就可以使用多个元素click事件进行一次操作,只需使用逗号分隔元素

 $('document').ready(() => {
     const myFunction= () => {
         // Your Code here...
        }
     $(document).on('click', '.btn-current, .btn-current', function () {
        myFunction();
     }
    }

答案 1 :(得分:1)

您可以单独定义一个函数,并将其作为回调传递给单击处理程序上的两个按钮。例如 -

$('document').ready(() => {
 const commonFunc = () => {
     // do common stuffs here
 }
 $(document).on('click', '.btn-star', commonFunc());
 $(document).on('click', '.btn-current', commonFunc());
}

希望有所帮助!

答案 2 :(得分:1)

如果要调用相同的函数,可以使用简单的j查询表达式选择两个按钮类:

$('.btn-star, .btn-current').click(function() {
 // Do stuff
}

使用逗号分隔您的选择器,在引号内。

您可以在此链接上阅读有关j-query选择器的更多信息: https://www.sitepoint.com/comprehensive-jquery-selectors/

答案 3 :(得分:1)

稍短的代码......

  $('document').ready(() => {
    function commonFunc() {
        //do stuffs here
    }

    $('.btn-star, .btn-current').on('click', commonFunc);
    }

答案 4 :(得分:0)

尝试以下代码

>>> page = requests.get("http://www3.asiainsurancereview.com/News","html.parser")
>>> soup = BeautifulSoup(page.content, "html.parser")
>>> aa = soup.select("div.col-sm-5 ul.list-default li h5 a")
>>> for a in aa:
...     print(a.attrs['href'])
...
/Mock-News-Article/id/42945/Type/eDaily/New-Zealand-Govt-starts-public-consultation-phase-of-review-of-insurance-law
/Mock-News-Article/id/42946/Type/eDaily/India-M-A-deals-brewing-in-insurance-sector
/Mock-News-Article/id/42947/Type/eDaily/China-Online-insurance-premiums-soar-31-in-1Q2018
/Mock-News-Article/id/42948/Type/eDaily/South-Korea-Courts-increasingly-see- 65-as-retirement-age
>>>

参考:http://api.jquery.com/on/

答案 5 :(得分:0)

你可以这样试试:

    function test()
    {
     //your code
    }

    $(".btn1, .btn2").on("click", funciton(){
      test();
    });

答案 6 :(得分:0)

为什么[Javascript]在这篇文章中被标记了?如果它应该在那里,我假设你将接受javascript响应吗?

如果你要使用javascript,它会更容易,你可以在你的html代码中添加一个onClick ='function()'并在那里执行你的功能。

<html>
<head>
<script>
function buttonFunction(buttonName){
//EDIT 3.0: You can make one button do the same as the other button, but you can also make it do something else at the same time!
if(buttonName == 'btn-star'){
//other code such as:
alert("Stars are awesome!");
}
alert("You just clicked " + buttonName);
}
</script>
</head>
<body>
<div id='button1'>
<button id='btn-star' onclick='buttonFunction("btn-star")'>btn-star</button>
</div>
<br/>
<div id='button2'>
<button id='btc-current' onclick='buttonFunction("btn-current")'>btn-current</button>
</div>
</body>
</html>

如果你愿意,你还可以另外制作一个按钮与另一个按钮相同,之后再做一些与我在此片段中所做的不同的事情。

P.S:我只是假设允许使用javascript,因为毕竟它已在此帖子上标记。

编辑:我向您展示了一个按钮的示例与另一个按钮略有不同,但在某种程度上仍然相同

另一个编辑:你可以用这个做很多事情,添加一些关于你可以用这个片段做些什么的想法。

答案 7 :(得分:0)

你可以尝试

    $('.btn-star , .btn-current').on('click', function () {
        //do something common for elements
    });