2017-03-03 99 views
0

我有一個jQuery調用JavaScript函數的問題在分割文件。jquery函數調用一些事件在分割的文件

這是代碼。

響應,input.js

function setDataToTarget(target, data) { 
alert($(target)); 
if (!!$(target)) { 
    $(target).val(data); 
    } 
} 

function setInputHandler(target) { 
    const element = $(this); 
    element.on("input", setDataToTarget(target, element.val())) 
} 

$.fn.responsiveInput = function(target) { 
    $(this).each(setInputHandler(target)); 
} 

base.html文件

... 
<script> 
$(document).ready(function() { 
    $('input[name="price_expected_input[]"]') 
      .responsiveInput($('input[name="price_expected[]"]')); 
}); 

我已經打算,它的作品如下面的代碼一樣。

$('input[name="price_expected_input[]"]').each(function() { 
    $(this).on("input", function() { 
     $('input[name="price_expected[]"]').val($(this).val()); 
    }); 
}); 

但它不起作用,因爲setInputHandler函數中的元素。我想知道如何使它工作。

回答

0

this,在setInputHandler函數內引用窗口對象。您可以從每種方法將該元素傳遞給該函數,如下所示:

function setInputHandler(e, target) { 
    const element = $(e); 
    element.on("input", setDataToTarget(target, element.val())); 
} 

$.fn.responsiveInput = function(target) { 
    $(this).each(function(i, e){setInputHandler(e, target)}); 
} 
+0

謝謝您的回覆 – Knunu