我有功能
<script type="text/javascript">
$(function () {
$("#search").click(function() {
var text = $("#searchText").val();
$.getJSON("Search", { world: text, filter: text }, function(data) {
$("tr.DataRow").toggle(false);
for (i = 0; i < data.length; i++) {
$("#obj" + data[i]).toggle(true);
}
});
})
});
</script>
现在我有另一项功能
<script type="text/javascript">
$(function() {
$('#searchText').bind('keypress', function(e) {
if (e.keyCode == 13) {
}
});
});
</script>
如何从第二个函数调用第一个函数?
答案 0 :(得分:20)
您可以在注册第一个功能的元素上引发单击事件
<script type="text/javascript">
$(function() {
$('#searchText').bind('keypress', function(e) {
if (e.keyCode == 13) {
$('#search').click(); // Raise a click event on #search element
}
});
});
</script>
答案 1 :(得分:20)
将第一个事件处理程序中的逻辑提取到命名函数中:
function doSearch() {
var text = $("#searchText").val();
$.getJSON("Search", { world: text, filter: text }, function(data) {
$("tr.DataRow").toggle(false);
for (i = 0; i < data.length; i++) {
$("#obj" + data[i]).toggle(true);
}
});
}
您现在可以按名称将doSearch
传递给点击处理程序:
$(function () {
$("#search").click(doSearch);
});
并在密钥处理程序中显式调用它:
$(function () {
$('#searchText').bind('keypress', function(e) {
if (e.keyCode == 13) {
doSearch();
}
});
});
答案 2 :(得分:12)
// first function
$(function() {
$.yourFavoriteFunctionName = function() {
// the code for the first function
};
$.yourFavoriteFunctionName();
});
然后
// second function
$(function() {
// whatever
if (foo)
$.yourFavoriteFunctionName();
答案 3 :(得分:1)
修改以使其正确
<script type="text/javascript">
function() myfunction{
var text = $("#searchText").val();
$.getJSON("Search", { world: text, filter: text }, function(data) {
$("tr.DataRow").toggle(false);
for (i = 0; i < data.length; i++) {
$("#obj" + data[i]).toggle(true);
}
});
}
$(function(){
$("#search").click(myfunction);
});
</script>
然后
<script type="text/javascript">
$(function() {
$('#searchText').bind('keypress', function(e) {
if (e.keyCode == 13) {
myfunction();
}
});
});
</script>