3

クラス'editable'の要素のクリックにeven.preventDefault()が適用されたjQuery関数があります。

ただし、Gmailがメールを送信するためにswebインターフェースを開くことを妨げているわけではありません。これは、デフォルトのメール動作が設定されていないシステム(私が主にテストしていたもの)で動作します。Outlookまたは実際のメールアプリケーションでいつ実行されるかはわかりません。

これに対する回避策はありますか?

$('.editable').not('video, img, textarea').click(function(event) { 
        event.preventDefault();
        loadEditor($(this));
    });

編集:私もevent.stopPropagation();で試しました。しかし、それはまだ進行中です。

4

5 に答える 5

1

return falseを追加してみてください、

$('.editable').not('video, img, textarea').click(function(event) { 
        event.preventDefault();
        loadEditor($(this));
        return false;
    });

event.preventDefault()vs.falseを返す

于 2011-08-28T03:31:11.050 に答える
1

Gmailインターフェースのイベント処理はおそらくブラウザ内で行われているので、event.stopPropagationも呼び出してみてください。

于 2011-08-28T03:32:03.070 に答える
0

event.preventDefault()デフォルトの動作が関連付けられている要素に対して機能します。

たとえば、アンカー要素はhrefで設定されたURLにリダイレクトされ、フォーム送信イベントはフォームを送信します。このような場合、event.preventDefault()はその動作を停止します。

直面している問題はイベントバブリングです。event.stopPropagation()を(event.preventDefault()と一緒に使用するか、falseを返す必要があります)。

 $('.editable').not('video, img, textarea').click(function(event) { 
        event.stopPropagation();
        loadEditor($(this));
        return false;
    });
于 2011-08-28T03:43:35.783 に答える
0

これを防ぐ方法が実際にあるかどうかはわかりませんが、他の回答で言及されているイベント関連のjQueryコマンドはどれも効果的ではありませんでした。

当面の間、編集が有効になっているときにリンクの「mailto」部分を削除しますが、問題なく機能します。

于 2011-09-14T15:23:13.917 に答える
0

mailtoにもリンクしている[送信]リンクボタンに何の影響も及ぼさない理由をまだ理解していない方にとっては、問題はMailto:for Gmail ExtensionforChromeにあると思います。リンクはFirefoxで正常に機能します。また、前述の拡張機能がChromeで無効になると、リンクは正常に機能します。

于 2014-02-11T16:57:21.427 に答える