javascript onclick в путанице html - PullRequest
       5

javascript onclick в путанице html

2 голосов
/ 01 сентября 2011

Я просматривал некоторый код java (который использует playframework), который обеспечивает некоторую функциональность корзины для покупок. Страница html содержит немного javascript (он использует jquery), что у меня очень мало Знание. Просматривая html, я нашел такую ​​таблицу

<table>
...
<td> 
<a href="" onclick="return addItem(${item.id});">buy</a>
</td>
...
</table>

(шаблон использует $ {} для получения динамических значений через playframework язык шаблона) Во всем коде единственный метод addItem(itemId), который я смог найти, был в классе ShoppingCart, который имеет эту подпись

public void addItem(Item item) {
...
}

Когда я искал onclick, я нашел эту страницу onclick doc , который дает синтаксис onclick как

onclick="SomeJavaScriptCode"

Проходя через весь код javascript (он использует jquery и ejohn-templating), я не смог найти ни одного метода, такого как 'addItem'

Итак, как работает onclick? Как он узнает, какой метод вызывать? Будет ли он смотреть во всем коде (javascript и java), чтобы найти подходящий метод?

Ответы [ 5 ]

3 голосов
/ 01 сентября 2011

где-то у вас есть метод addItem в вашем коде JavaScript. Код в html выполняет этот метод, а не метод addItem, который вы нашли в коде Java.

1 голос
/ 01 сентября 2011

Это относительно просто. Похоже, ваш Java-код выполняется на стороне сервера, а JavaScript (включая jQuery) - на стороне клиента. Таким образом, $ {item.id} выполняется на сервере, а onClick выполняет любой код javascript, который вы предоставляете для него на стороне клиента.

1 голос
/ 01 сентября 2011

Во-первых, он будет искать только методы javascript, а не методы java. Во-вторых, вы можете использовать отладку в firebug для доступа к вызываемому методу.

0 голосов
/ 01 сентября 2011

Javascript не может получить доступ к функциям на стороне сервера, если только не через AJAX или что-то подобное. Даже тогда, он не имеет прямого доступа к функциям, но к странице, которая обращается к этому.

Посмотрите внимательнее на эту функцию в вашем Javascript, используя firebug или консоль Google Chrome. Это должно быть там.

0 голосов
/ 01 сентября 2011

Я не знаю playframework, но addItem должен быть javascript, а public void addItem(Item item) - это java-код.Оба не связаны

Эта addItem функция JavaScript где-то есть.Если вы не можете найти его в своей базе кода, вы можете использовать консоль вашего браузера (или firebug в Firefox), чтобы увидеть эту функцию JavaScript.Перейдите на вкладку Script и найдите addItem.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...