修改
我没有很好地描述我的问题,所以我会再试一次。
我有一个加载外部js的页面,在页面上我有一个名为calculate_totals()的函数。我想要的是从外部js中的函数调用函数calculate_totals()。
这是一个在外部js中加载的javascript
function selectItemMouse(thisVar)
{
var searchValue = thisVar.attr('data-name');
thisVar.parent().parent().parent().parent().children('.list').val(searchValue);
//alert(thisVar.parent().parent().parent().parent().next().find('input').focus());
thisVar.children().children().each(function()
{
var dataId = $(this).attr('data-id');
var value = $(this).attr('data-name');
//This change the input of my form
$(thisVar).parent().parent().parent().parent().children().children('.'+dataId).val(value);
});
$('.customerResults').hide();
calculate_totals();
}
答案 0 :(得分:1)
您可以在输入上放置一个更改的监听器:
$(document).ready(function(){
$('#input').change(function(){
alert("alert here");
});
});
答案 1 :(得分:1)
基于评论会话:
calculate_totals在$(document).ready(function(){});
因为在它之外没有看到它。基本上,它仅在$(document).ready(function(){});
内可见。把它移到它外面吧。现在,它将在任何地方变得全球化和可见。
而不是
$(document).ready(function(){
function calculate_totals() {} // this function is visible inside of a ready function only
///..... other code here
});
使用:
function calculate_totals() {} // now it is a part of global context
$(document).ready(function(){
///..... other code here
});
之后你应该在selectItemMouse和任何其他地方提供它。
此外,我会考虑更新您的代码。
thisVar.parent().parent().parent().parent().children('.list').val(searchValue);
这种链的使用不灵活。只是你将使用其他元素包装thisVar元素 - 你需要更新你的JS代码。
查看.parents
或.closest
。例如,您可以更改上面的一行:
thisVar.closest(".class_common_parent").children('.list').val(searchValue);
.class_common_parent
是使用parent().parent().parent().parent().