2016-09-25 33 views
1

我是jQuery的新手,我希望能否覆蓋現有的點擊函數。在單擊處理函數上覆蓋jQuery

的代碼如下:

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

,我想數改變裏面我自己的js文件。

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

什麼你問?只需將25更改爲21並保存js文件 –

+0

好像我沒有正確解釋它。第一個代碼是插件的一部分,因此我無法修改原始代碼。 – kiarashi

回答

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>

+0

謝謝!這工作完美無瑕。 – kiarashi