Функция вызова jquery по имени
i имеет функцию
<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>
как я могу вызвать первую функцию из второй функции?
Ответы
Ответ 1
Вы можете поднять событие клика на элемент, который вы зарегистрировали, первую функцию
<script type="text/javascript">
$(function() {
$('#searchText').bind('keypress', function(e) {
if (e.keyCode == 13) {
$('#search').click(); // Raise a click event on #search element
}
});
});
</script>
Ответ 2
Извлеките логику из первого обработчика событий в именованную функцию:
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();
}
});
});
Ответ 3
// first function
$(function() {
$.yourFavoriteFunctionName = function() {
// the code for the first function
};
$.yourFavoriteFunctionName();
});
затем
// second function
$(function() {
// whatever
if (foo)
$.yourFavoriteFunctionName();
Ответ 4
вы могли бы назвать его именем? я что-то пропустил?
изменить:, чтобы получить это право
<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>