2013-03-11 2 views
1

Привет Я enconter некоторые проблемы с: http://jsfiddle.net/fNgXX/4/Jquery: Контекстное сброс

Что я хочу: Когда пользователь DoubleClick на слово, в зависимости от текста, я покажу другую Контекстное. первая ошибка здесь:

$('word').click(function(e) { 

мне пришлось использовать .click, чтобы для заставить его работать на двойной щелчок. Понятия не имею почему. когда я помещаю dblclick, я должен нажать 4 раза, чтобы показать contextMenu.

вторая проблема (более важно): При двойном щелчке на:

<word>test</word> 

Вы видите Контекстное с Edit. Но после этого, когда вы нажимаете на notest, предположим, что вы показываете контекстMenu Cut, но это не так, он все еще показывает предыдущий contextMenu.

Так что мой вопрос в том, как сбросить conextMenu?

ответ

1

Вы имели 2 проблемы, сначала называли функцию, чтобы создать contextMenuперед тем фактически создавая его, поэтому сначала нужно было нажать его несколько раз (если расположить его правильно .dblclick() работает, как ожидалось). Кроме того, у вас была другая проблема: вы не переопределяли items вариант contextMenu, а поскольку contextMenu уже существует, все будущие звонки в word.contextMenu(), где он просто отображается, но не переопределяет существующий, я изменил ваш changeWord функция:

changeWord = function(word){ 
    var item={}; 
    if (word.text() == 'test') { 
     item['edit']={name: "Edit", icon: "edit"}; 
    } else { 
     item['cut']= {name: "Cut", icon: "cut"} 
    } 
    console.log(item); 
    $.contextMenu('destroy', 'word'); 
    $.contextMenu({ 
     selector: 'word', 
     trigger: 'none', 
     items: item 
    }); 
    word.contextMenu(); 
} 

И это работает, как ожидалось, вы можете увидеть его на this updated fiddle ...

+0

OK. Большое вам спасибо за помощь и хорошее объяснение. – GeorgesLeYeti

+0

Надеюсь, это вам поможет, и если это произойдет, было бы здорово, если бы вы могли принять и перенести мой ответ ... – DarkAjax

+0

Я сделал это. Я не могу до этого, потому что не хватает репутации. Еще раз спасибо. – GeorgesLeYeti

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