Ошибка GWT !? ClickHandler не срабатывает при добавлении CSS "position: absolute" - PullRequest
0 голосов
/ 29 декабря 2011

(GWT 2.4.0)

После добавления CSS: «position: absolute» (см. Прилагаемый код), события GWT «ClickHandler» перестают работать. Баг проверен на Chrome 16.0.9 и FireFox 8.0, на IE 9 код работает нормально.
(Полный фрагмент кода на github: https://gist.github.com/1533904). Это ошибка GWT или я делаю что-то не так?

Файл: client.MySampleApplication.java

public void onModuleLoad() {
    final Button button = new Button("Click me");
    button.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            Window.alert("ahtung");
        }
    });
    RootPanel.get("slot1").add(button);

    final Button button2 = new Button("Click me2");
    button2.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            Window.alert("ahtung2");
        }
    });
    RootPanel.get("slot2").add(button2);
}

Файл: web.MySampleApplication.html

<html>
<head>
    <title>Wrapper HTML for App</title>
    <script type="text/javascript" language="javascript"
            src="MySampleApplication/MySampleApplication.nocache.js"></script>
</head>
<body>
    <div id="slot1" style="position: absolute; padding-top: 50px; padding-left: 150px;" ></div>
    <div id="slot2" style="position: absolute; padding-top: 100px; padding-left: 150px;" ></div>
</body>
</html>

1 Ответ

1 голос
/ 29 декабря 2011

Ваши div один над другим: оба расположены на 0,0;slot1 имеет высоту не менее 50px (плюс высота кнопки, которую вы помещаете внутрь), а slot2 располагается сверху (потому что он указан после в документе, и у них одинаковые z-index) и вминимум 100px высокий, поэтому охватывает slot1.

Возможно, вы захотите использовать top вместо padding-top и left вместо padding-left.

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