簡體   English   中英

如何使用javascript / jQuery替換onclick動作(使用正則表達式)?

[英]How can I replace the onclick action (with regex) using javascript / jQuery?

如何使用jQuery替換部分onclick屬性/屬性? 在下面的示例中,我想用do_delete_image替換delete_image

示例HTML

<a href="#" onclick="delete_image(1234)" >Delete Image</a>

我的嘗試

jQuery('a').each(function(){
    var action = $(this).prop('onclick').replace('delete_image','do_delete_image');
    $(this).prop('onclick',action);
});

錯誤

Google Chrome正在拋出此錯誤:

TypeError:對象函數onclick(event){delete_image(1234); return false; 沒有方法'替換'

我怎樣才能做到這一點? ps:這是一個設置為與其他人的代碼一起使用的書簽。

onclick是一個表示處理click事件的函數的屬性。 要獲取和設置實際內容,請使用attr而不是prop

或者,考慮用do_delete_image替換delete_image ,例如:

window.delete_image = window.do_delete_image;

如果需要包裝原始函數,可以將其與閉包結合使用。

使用$(this).unbind()清除該元素上的處理程序,然后添加新元素

從jQuery 1.7開始,這應該有效......

jQuery('a').each(function(){
    $(this).off('click')
        .on('click', do_delete_image);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM