1

リンクのように動作させたいボタンを作成しましたが、右クリックすることはできません:

ここに画像の説明を入力

「戻る」などの代わりに、要素を右クリックしてリンクを作成できるようにするにはどうすればよいですか? 私が今使用しているコードは次のとおりです。

 <form action="/ai" method="get">
    <input type="submit" class="btn primary"  name="psearchsub" value="Post your ad for free"/>
</form>
4

3 に答える 3

1

Jon が質問へのコメントで提案しているように、<a>直接スタイルを設定できます。右クリック イベントが必要な場合は、フックしoncontextmenuてデフォルト アクションを防止します。

<a href="http://leftclicklocation.com" id="ad">Post your ad for free</a>
<script>
  document.getElementById("ad").addEventListener("contextmenu",function(e) {
    e.preventDefault(); // to supress the default context menu
    window.location = "http://rightclicklocation.com"; // whatever you want
  });
</script>

で、スタイルはこちら

  #ad {
    display: inline-block;
    border: 1px solid black;
    width: 200px;
    height: 25px;
    text-decoration: none;
    text-align: center;
    color: white; font-weight: bold;
    -webkit-border-radius: 5px;
    border-radius: 5px;
    background: #6db3f2; /* Old browsers */
background: -moz-linear-gradient(top,  #6db3f2 0%, #54a3ee 50%, #3690f0 51%, #1e69de 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#6db3f2), color-stop(50%,#54a3ee), color-stop(51%,#3690f0), color-stop(100%,#1e69de)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  #6db3f2 0%,#54a3ee 50%,#3690f0 51%,#1e69de 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  #6db3f2 0%,#54a3ee 50%,#3690f0 51%,#1e69de 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top,  #6db3f2 0%,#54a3ee 50%,#3690f0 51%,#1e69de 100%); /* IE10+ */
background: linear-gradient(to bottom,  #6db3f2 0%,#54a3ee 50%,#3690f0 51%,#1e69de 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#6db3f2', endColorstr='#1e69de',GradientType=0 ); /* IE6-9 */
}

css3generatorグラデーションエディタを使用しました

于 2013-05-18T00:18:38.110 に答える
1

フォーム要素にイベント リスナーを配置します。

$('form').on('click', function(e){
  //detects right click
  if ( e.originalEvent.button = 2 ) {
    window.location = 'http://newpage.com'
  }
});

以下に述べるように、おそらくコンテキストメニューをオーバーライドしたいでしょう (それができるとは知りませんでした)。

于 2013-05-18T00:19:25.323 に答える
1

編集:申し訳ありませんが、私はあなたの投稿を間違って解釈したと思います. ボタンを右クリックできるようにしたいですか、それともユーザーがボタンを右クリックできないようにしたいですか?

オリジナル: ここでちょっと考えてみてください-使ってみてくださいoncontextmenu="return false;"-私の記憶が正しければ、右クリックを防ぐ必要があります。(もちろん、少し JavaScript を使用したい場合)

于 2013-05-18T00:13:39.790 に答える