2013-06-20 3 views
4

Особая проблема.Как отключить событие фокусировки от элемента

Сценарий что-то делает на «mousedown», затем выполняется на любом событии «keypress», «focusout», «keyup».

Вопрос в том, как я могу убить два оставшихся события, как только один из них будет выполнен.

Я пробовал $(document).off(), $(this).off('focusout'), и ничего не работает.

Любые подсказки?

.on('mousedown', '.task-content', function() { 
    // Make DIV Editable 
}) 

.on('keypress', '.task-content', function (e) { 
    if (e.which == 13 && !e.shiftKey) { 
     // Update DIV content to DB 
    } 
}) 

.on('focusout', '.task-content', function() { 
    // Update DIV content to DB 
}) 

.on('keyup', '.task-content', function (e) { 
    if (e.which == 27) { 
    // Return DIV to previous state 
    } 
}) 
+1

Я не понимаю, что вы пытаетесь сделать. Можете ли вы показать фактический код, который вы пытались отменить/развязать события? – Mathletics

+0

@Mathletics/Я немного отредактировал код (те отлично работают BTW - это будет длинный код для публикации). Что конкретно происходит, так это то, что однажды я нажму «Enter» (keypress, 13) // focusout все еще «прослушивает» и может быть выполнен также. См. Я хочу, чтобы два других процесса были убиты, когда один из них используется. –

+0

Я предполагаю, что он хочет выполнить только 1 из трех обработчиков, развязка не нужна. –

ответ

1

Ваш код работает нормально, возможно, вы указали бы неправильный код selector.

$('.task-content').on('keypress', function (e) { 
    if (e.which == 13 && !e.shiftKey) { 
     // Update DIV content to DB 
     alert("key press"); 
     $(this).off('focusout'); 
    } 
}) 

$('.task-content').on('focusout', function() { 
    // Update DIV content to DB 
    alert("focus out "); 
}) 

Проверьте это JSFiddle.

+0

Спасибо за это. Мне просто удалось это сделать, однако мне нужно снова использовать «повторное использование» на «mousedown». // Другими словами, его нельзя убить навсегда. –

+0

@October Использование делегата будет переподтверждено. – Praveen

+0

Не делегировано делегату .on()? –

Смежные вопросы