我正在尝试修改这个脚本:jQuery Example: Inserting text with drag n’ drop。
我的目标是让我的用户点击一个图像缩略图,并将适当的标记图像代码插入到文本区域中。
我不熟悉JS,所以我知道脚本的要点发生在这里:
$('#ClickWordList li').click(function() {
$("#txtMessage").insertAtCaret($(this).text());
return false
});
具体地说,.text()
就在那里,但是我不知道如何修改输出,以满足我需要插入的标记片段,而不仅仅是列表文本。
Markdown内联图像语法如下所示:
我尝试将列表更改为包含图像的div,然后更改为.insertAtCaret($(this).src);
,但插入文本显示为"undefined“。
发布于 2012-06-05 02:24:32
$(this).src
未定义,因为$(this)
是一个jQuery object
,而jQuery对象没有src
属性。假设您的选择器中有一个图像元素,您可以尝试:
$("#txtMessage").insertAtCaret($(this).attr('src'));
当只给出一个参数时,.attr()
jQuery方法将返回匹配元素的给定属性的值。
或
$("#txtMessage").insertAtCaret($(this)[0].src);
来获取文字DOM元素的src
。
额外的解释(如果你需要)
如果没有提供任何参数,.text()
jQuery方法将返回this
引用的元素(即事件的目标)中的所有文本,在本例中,返回的是在#ClickWordList
元素中单击的li
。
.insertAtCaret()
是drag 'n drop
插件提供的jQuery对象的扩展函数。
return false
将照它所说的做,在所选元素的click
事件处理程序中返回false
,这将简单地取消事件并防止其传播进一步冒泡到DOM上。
如果有任何打字错误,很抱歉。
https://stackoverflow.com/questions/10890727
复制相似问题