1

嗨,我遇到了一些问题:http: //jsfiddle.net/fNgXX/4/

我想要什么:当用户双击单词时,根据文本,我将显示不同的 contextMenu。这里的第一个错误:

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

我必须使用 .click 才能使其适用于双击。我不知道为什么。当我放 dblclick 时,我必须单击 4 次才能显示 contextMenu。

第二个问题(更重要):当你双击:

<word>test</word>

您会看到带有 Edit 的 contextMenu。但是在那之后,当您单击注释时,它应该显示一个 contextMenu Cut 但它没有,他仍然显示以前的 contextMenu。

所以我的问题是如何重置conextMenu?

4

1 回答 1

1

contextMenu 您有 2 个问题,首先您在实际创建它之前调用该函数来创建它,这就是为什么最初您必须多次单击它(如果您安排它.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();
}

它按预期工作,你可以在这个更新的小提琴上看到它......

于 2013-03-11T20:25:31.213 回答