在单击处理函数上覆盖jQuery

时间:2016-09-25 20:47:41

标签: javascript jquery

关于jQuery,我是一个新手,我希望能有一种覆盖现有点击功能的方法。

代码如下:

$('.woo-star-rating').on('click', function() {
    $('.woo-star-rating-filled').width( $(this).attr('data-rating') * 25 )
});

我想在自己的.js文件中将 25 的数量更改为 21

$('.woo-star-rating').on('click', function() {
    $('.woo-star-rating-filled').width( $(this).attr('data-rating') * 21 )
});

1 个答案:

答案 0 :(得分:4)

您可以使用.off()方法删除现有的click事件处理程序,添加新的点击事件。

var $rating = $('.woo-star-rating');

$rating.off('click');
$rating.on('click', function() {
    $('.woo-star-rating-filled').width( $(this).attr('data-rating') * 21 )
});

这可以链接到:

$('.woo-star-rating').off('click').on('click', function() {
    $('.woo-star-rating-filled').width( $(this).attr('data-rating') * 21 )
});

这是一个有效的例子:

// add junk event
$('#test-button').on('click', function() {
  console.log('first button click');
});

// remove first event
$('#test-button').off('click');

// add new event, only this will fire on click
$('#test-button').on('click', function() {
  console.log('second button click');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="test-button">Test Button</button>