0

我正在尝试修改此脚本:jQuery 示例:使用拖放插入文本

我的目标是让我的用户单击图像缩略图并将适当的降价图像代码插入到文本区域中。

我不熟悉 JS,所以我知道脚本的核心在这里发生:

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

具体来说,.text()那里的位,但不知道如何更改输出以适应我对插入降价片段的需要,而不仅仅是列表文本。

Markdown 内联图像语法如下所示:![Alt text](/path/to/img.jpg)

我尝试将列表更改为带有图像的 div,然后更改为.insertAtCaret($(this).src);但我得到“未定义”作为插入文本。

4

1 回答 1

2

$(this).src是未定义的,因为$(this)是 a jQuery object,并且 jQuery 对象没有src属性。假设您的选择器中有一个图像元素,您可以尝试:

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

.attr()jQuery 方法,当只给定一个参数时,将返回匹配元素的给定属性值。

或者

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

获取文字 DOM 元素的src.

额外说明(如果需要)
jQuery 方法 在.text()不给定参数时,将返回由 引用的元素内的所有文本this,即事件的目标,在本例中为元素li内的单击。#ClickWordList

.insertAtCaret()drag 'n drop插件提供的 jQuery 对象的扩展函数。

return false将完全按照它说的做,返回所选元素falseclick事件处理程序,这只是取消事件并防止其传播进一步冒泡 DOM。

抱歉,如果有任何错别字。

于 2012-06-05T02:24:32.000 回答