текстовые поля UI Dialog + ASP.NET jQuery + фокус

int main() {
    // insert code here...
    treeNode **node;
    createTree(node);
    preOrder(*node);
    return 0;
}
blockquote>

должно быть

int main() {
    treeNode *node;
    createTree(&node);
    preOrder(node);
    return 0;
}

, иначе в createTree *node = ... запись в недопустимом местоположении (* узел не установлен в действительный указатель в main )

Ваш ввод должен быть ABD***CEFG***** для завершения:

pi@raspberrypi:/tmp $ gcc -pedantic -Wextra b.c
pi@raspberrypi:/tmp $ ./a.out
ABD***CEFG******
ABDCEFGpi@raspberrypi:/tmp $ 

О вашем замечании:

[ 1117] да, я не знаю, какая левая, какая правая

blockquote>

практический способ - нарисовать дерево.

Очень простой способ:

void draw(treeNode *node, int level, char empty)
{
  if (node != NULL) {
    draw(node->right, level+1, '/');
    for (int i = 0; i != level; ++i)
      putchar(' ');
    printf("%c\n", node->val);
    draw(node->left, level+1, '\\');
  }
  else {
    for (int i = 0; i != level; ++i)
      putchar(' ');
    printf("%c\n", empty);
  }
}

, если я изменю main на:

int main() {
    treeNode *node;
    createTree(&node);
    preOrder(node);
    putchar('\n');
    draw(node, 1, ' ');
    return 0;
}

Компиляция и выполнение:

pi@raspberrypi:/tmp $ gcc -pedantic -Wextra b.c
pi@raspberrypi:/tmp $ ./a.out
ABD***CEFG*****
ABDCEFG
   /
  C
    /
   E
     /
    F
      /
     G
      \
 A
   /
  B
    /
   D
    \

Символ '/' указывает, что справа ничего нет, а символ \ \ указывает, что слева ничего нет


[править] Некоторые способы нарисовать самое красивое дерево можно найти в C Как «нарисовать» ”Двоичное дерево для консоли


Я допустил ошибку на входе, если я использую ваше существо ABD***CE**FG***, результат будет:

/tmp % ./a.out
ABD***CE**FG***
ABDCEFG
    /
   F
     /
    G
     \
  C
    /
   E
    \
 A
   /
  B
    /
   D
    \
5
задан Community 23 May 2017 в 11:55
поделиться

4 ответа

Работает в FF, но не в IE7. Я разобрался с двумя вариантами работы. Если вы не ссылаетесь на текстовое поле по имени, а по положению или по какой-то причине, если вы установили фокус дважды.

Первый:

$("input:text:second").focus();

Второй:

$("#TextBox2").focus().focus();
3
ответ дан 18 December 2019 в 12:01
поделиться

I think the problem is that you are moving the popup and calling focus before the dialog is fully created.

Try using the dialog's open event instead:

$(document).ready(function() {
  $("#popup").dialog({
    open: function(){
      $(this).parent().appendTo(jQuery("form:first"));
      $("#TextBox2").focus();
    }
  });
});
4
ответ дан 18 December 2019 в 12:01
поделиться

вы также можете классифицировать текстовое поле, так как asp.net меняет идентификаторы управления, чтобы избежать конфликтов имен.

$(".mytextbox").focus();

в качестве примера ... это, конечно, противоречит цели семантики, но семантика не смешивается хорошо с веб-формами.

1
ответ дан 18 December 2019 в 12:01
поделиться

Попробуйте использовать setTimeout ("$ ('# TextBox2'). Focus ();", 100); , иногда для диалога и других методов пользовательского интерфейса jQuery займет несколько секунд, чтобы фактически выполнить задачи, которые мы назначаем кодом.

Надеюсь, это поможет. Этот обходной путь помог во многих моих приложениях.

7
ответ дан 18 December 2019 в 12:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: