0

私はこのスクリプトを適応させようとしています:jQuery例:ドラッグアンドドロップでテキストを挿入します

目標は、ユーザーが画像のサムネイルをクリックして、適切なマークダウン画像コードをテキストエリアに挿入することです。

私はJSに精通していないので、スクリプトの要点がここで発生していることを認識しています。

$('#ClickWordList li').click(function() {
    $("#txtMessage").insertAtCaret($(this).text());
        return false
    });

具体的には、.text()そこに少しありますが、たとえばリストテキストだけでなく、マークダウンのスニペットを挿入するという私のニーズに合わせて出力を変更する方法がわかりません。

マークダウンインライン画像の構文は次のようになります。![Alt text](/path/to/img.jpg)

リストを画像付きのdivに変更してからに変更しようとしました.insertAtCaret($(this).src);が、挿入テキストとして「undefined」が表示されます。

4

1 に答える 1

2

$(this).srcはであるため未定義で$(this)あり、jQueryオブジェクトにはプロパティjQuery objectがありません。srcセレクターに画像要素があると仮定すると、次のことを試すことができます。

$("#txtMessage").insertAtCaret($(this).attr('src'));

jQueryメソッドは.attr()、パラメーターが1つだけ指定されている場合、一致した要素の指定された属性の値を返します。

また

$("#txtMessage").insertAtCaret($(this)[0].src);

リテラルDOM要素のを取得しますsrc

追加の説明(必要な場合) jQueryメソッドは、パラメーターが指定されていない場合、によって参照される要素内のすべてのテキスト
、つまり、イベントのターゲット、この場合は要素内でクリックされたものを返します。.text()thisli#ClickWordList

.insertAtCaret()drag 'n dropプラグインによって提供されるjQueryオブジェクトの拡張関数です。

return false選択した要素のイベントハンドラーに戻りfalseclickイベントをキャンセルして、その伝播がDOMをさらにバブリングするのを防ぎます。

タイプミスがありましたらごめんなさい。

于 2012-06-05T02:24:32.000 に答える