Kendo UI TabStrip e.preventDefault() не работает

Две проблемы:

1.) e.preventDefault() некорректно работает с Kendo UI TabStrip, когда где-то

$("#tabstrip").kendoTabStrip().data('kendoTabStrip');

появляется.

2.) Представьте, что пользователь нажимает на другую вкладку, но имеет несохраненные изменения. Появится диалоговое окно с вопросом, хочет ли он отменить изменения и перейти на вкладку или хочет остаться на активной вкладке, чтобы сохранить свои изменения.

Мое решение не работает. Я думаю, из-за проблемы 1. и из-за того, что .data() каким-то образом повторно инициализирует TabStrip?! Что не так?

Вот (не) рабочий пример http://jsfiddle.net/Nakkvarr/w9586/

Любые идеи по этому вопросу?


person DoubleVoid    schedule 09.05.2014    source источник


Ответы (1)


Причина, по которой это не работает для первой вкладки, заключается в том, что вы дважды инициализировали полосу вкладок для одного и того же элемента $('#tabstrip'). Поскольку вы связали событие select при первой инициализации, последующая инициализация перезаписала его (событие select больше не обрабатывается). Вы даже сами ответили на проблему, заявив, что это работает, если вы прокомментируете вторую строку инициализации.

Я не совсем понимаю, чего вы пытаетесь добиться с помощью функции setTimeout() во втором примере. Это не нужно.

Использование e.preventDefault() работает, как и ожидалось. JSFiddle: http://jsfiddle.net/w9586/6/

person Brett    schedule 09.05.2014
comment
Вау, спасибо, не знал о подтверждении(): O Я хотел добиться того же, но с помощью диалога jquery... не сработало... потому что мне как-то нужно получить доступ к tabStrip.select() в да-обратный вызов диалога. Я проверю это в понедельник, когда вернусь к работе :D - person DoubleVoid; 09.05.2014
comment
Глупый я, нет, я узнаю подтверждение (), хе-хе. Но есть ли у вас идея, как это сделать: jsfiddle.net/Nakkvarr/Fr3uJ !? - person DoubleVoid; 09.05.2014
comment
ладно, неважно, я думаю, я понял. Я должен сохранить ссылку на данные и никогда больше не вызывать .data() на TabStrip, чтобы заставить его работать: jsfiddle. net/Nakkvarr/kdSLB Кажется, работает, проверим в понедельник на работе... большое спасибо, Бретт :) Хороших выходных! - person DoubleVoid; 09.05.2014