我正在尝试修改此脚本:jQuery Example: Inserting text with drag n’ drop。
目标是让我的用户点击图片缩略图,并在textarea中插入相应的降价图像代码。
我不熟悉JS,所以我知道剧本的内容正在发生在这里:
$('#ClickWordList li').click(function() {
$("#txtMessage").insertAtCaret($(this).text());
return false
});
具体来说,那里有.text()
位,但不知道如何改变输出以满足我对插入标记的片段的需要,而不仅仅是列表文本。
Markdown内嵌图像语法如下所示:![Alt text](/path/to/img.jpg)
我尝试将列表更改为带图像的div,然后更改为.insertAtCaret($(this).src);
,但我将“未定义”作为插入文本。
答案 0 :(得分:2)
$(this).src
未定义,因为$(this)
是jQuery object
,jQuery对象没有src
属性。假设您的选择器中有一个图像元素,您可以尝试:
$("#txtMessage").insertAtCaret($(this).attr('src'));
.attr()
jQuery方法,只给出一个参数,将返回匹配元素的给定属性值。
或强>
$("#txtMessage").insertAtCaret($(this)[0].src);
获取文字DOM元素的src
。
额外说明(如果需要)
{@ 3}} jQuery方法,如果没有参数,将返回this
引用的元素内的所有文本,即事件的目标,在这种情况下,li
内的#ClickWordList
{1}}元素。
.insertAtCaret()
是drag 'n drop
插件提供的jQuery对象的扩展函数。
return false
将完全按照其说法执行操作,在所选元素的false
事件处理程序中返回click
,这只会取消事件并阻止其传播进一步冒泡DOM
对不起,如果有任何拼写错误。