簡體   English   中英

Javascript轉義字符替換

[英]Javascript Escape Character Replacement

我正在使用按鈕在表單中動態生成新的表格行,並且這些行包括帶有參數的調用函數。 我嘗試在添加的行上使用JQuery來觸發.blur()事件,就像使用硬編碼的第一張表行成功完成的一樣,但是頁面完全忽略了它。 因此,我正在嘗試從行HTML內觸發onb​​lur()事件的另一種途徑。 我被函數參數卡住了,因為我要么弄亂了轉義字符順序,要么搞亂了翻譯。 我已經花了幾個小時來嘗試對Stack Overflow進行研究,所以我希望第二組眼睛能夠提供幫助。

這是相關的代碼段。 存儲的html會附加到我的表格行中,該行已經可以使用了。

var strVar = 'myString';
var rowCount = $("#tbodyID td").closest("tr").length;
var rowNum = rowCount + 1;


var line17 = "<td><input type='number' class='form-control' name='named_qty' onblur='function(" + strVar + ")' id='row_R" + rowNum.toString() + "' /></td> ";

大約有25行需要插入不同的html。 我能夠使它以前運行,但是意識到一個值是硬編碼的,因此我需要它是動態的。 它調用的函數接受一個字符串。

當插入HTML文檔時,此行通常應顯示為:

<td><input type="number" class="form-control" name="named_qty" onblur="function('myString')" id="row_R2" /></td>

我做了一些進一步的研究,並意識到我將JQuery blur()方法用作: $('#id').blur( function() { }); 並嘗試調用這些函數,而沒有意識到該方法僅適用於在頁面加載時已寫入DOM的HTML元素。

顯然,解決方案是使用JQuery on()方法,如下所示:

$(document).on("blur", '#id', function() {   <insert code> });

從W3Schools,

注意:使用on()方法附加的事件處理程序將同時適用於當前和FUTURE元素(如腳本創建的新元素)。

這消除了將事件函數調用包含在要附加到DOM的HTML行中的必要性。

暫無
暫無

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

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