3

(これは2つの投稿になると思います-2つの質問..コメントしていただければ...それらを分けます)

主な問題は実際には次のとおりです。

ボタンの画像背景を設定するにはどうすればよいですか...簡単で適切ですか?

私は今、これらの事実について確信できると思います:

<input type='button'>image を button-background として設定する際に「少し」問題があったので、...わかりました。image -background で設定するのが難しい場合は、代わりに!onclickにイベントを設定してください。<input type='image'>

そして、私は正しかった(...ほぼ)、そうです、 imageタイプにクリックイベントを設定するのは簡単です..ボタンsrcの代わりに..設定するのも簡単background-imageです...少なくとも私にとってはそうです。

問題は、現在のプロジェクトで)、jQuery-UI を使用して dialog - ok, cancel

問題は image-type 、 Posts back (?!) であると思われるため、ダイアログが消えます

ボタンはこの欠陥を引き起こしません。

vs2010でブレークポイントを使用してデバッグしようとしましたが、どちらも「関数エントリ」のポイントに到達するため、クリックイベントで問題ありません...したがって、画像タイプでは...メモしかできませんでした。<- Back button、からのトグルdisabledがクリック可能になっていることがわかりました。これは、ポストバックしたことを意味します。

ボタンの上にカーソルを置いても何も起こらず、画像ではステータスバーにリンクが表示されます。

そのため、ボタン-「画像に変換」することと、画像を「ボタン」に変換すること(イベントに添付すること)の間に違い(実際のもの)があります。Click()

だから私が知りたいのは、次のとおりです

画像がポストバックされるのはなぜですか?このアクションを無効にすることはできますか? ...サーバー コントロールではありません。それはあなたが知っておくべきことであり、それは起こると思いますか?

トピックから外れている場合は、この質問を移動します。その動作の回避策がない限り、ボタンの背景画像を設定する適切な方法が必要です。

4

1 に答える 1

2

画像タイプの入力要素がボタン タイプと異なる動作をする理由はわかりませんが、私があなただったら、すべて一緒に避けるでしょう。ボタンをカスタマイズしようとしている場合 (あなたのようです)、div を使用し、jquery/javascript を介してユーザー インタラクションを制御することをお勧めします。

デモ: http://jsfiddle.net/jrb9249/BvTD5/

HTML:

<body>
    <div class="div_button">
        <p>Click Me!</p>
    </div>
</body>

Javascript:

$('.div_button').click(function(){
    alert('Run a postback via JS');
});

CSS:

.div_button
{
    border: solid 1px gray;
    width:80px;
    height:25px;
    background:#A3A3A3;
    text-align:center;
    margin:0 auto;
    margin-top:50px;
}

.div_button:hover
{
    border: solid 1px blue;
    background:#A1A1A1;
    cursor:pointer;
}

ボタンの外観を完成させるために仕上げのタッチを追加するには、ここにある jquery rounded corners プラグインを使用して、いくつかの丸い角を追加します。そして、このコントロールでポストバックを行う必要がある場合 (asp.net コントロールのようには見えないので、そうしているとは思いません)、ここで説明されている __Postback テクニックを使用できます。

これがお役に立てば幸いです。あなたのサイトで頑張ってください。


更新: この投稿以降、div タグをタグ内に囲み、div<a>からハイパーリンクを作成するようになりました。その後、カスタム クリック イベントを<a>要素に適用して、作成したボタンをより詳細に制御できます。

于 2012-12-28T02:39:49.257 に答える