我們已經被要求在某些代碼中使用一種創可貼的措施,所以這會看起來很愚蠢,但卻忍無可忍。jquery - 防止onclick和檢索函數調用的參數
我們需要防止錨點的onclick方法,並檢索正在進行的函數調用的參數,以便用這些參數調用不同的函數。 下面是代碼和HTML我們至今:
<p><a href="#" onclick="openMoreProductVideos('Title of video','VideoCode','false');return false;"><span class="txt">View all videos</span></a></p>
JS:
// undefine onclick so it is not handled with broken function
$('a[onClick^=openMoreProductVideos]').each(function() {
this.onclick = undefined;
});
// grab parameters from onclick function call and submit to new function.
$('a[onClick^=openMoreProductVideos]').click(function() {
strStart = "openMoreProductVideos(";
strFinish = ");return false"
srctext = $(this).parent().html();
var re = strStart + ".*?"+strFinish
var newtext = srctext.match(re)[1];
var callparams = newtext.substring(1,newtext.length-1);
testparams(callparams);
});
// test function to see if parameters are working
function testparams (a,b,c){
console.log (a,b,c)
}
問題是返回的字符串(callparams)被視爲一個參數。我不是一個正則表達式專家,所以我希望有比我更多經驗的人可以很快看到解決方案。
非常感謝。
做的console.log(callparams)testparamps調用看到的結果 –
我沒有直接之前。它是一個字符串的所有參數。即:「'視頻標題','VideoCode','false'」當然是 – septemberbrain