自定义函数不适用于追加方法
Custom function not working with append method
我有一个自定义插件(来自dotdotdot插件)在我的段落标签中使用,如果它溢出,则使其成为省略号。
//ellipsis
$(".custom").dotdotdot({
/* The HTML to add as ellipsis. */
ellipsis : '...',
/* Wrap-option fallback to 'letter' for long words */
fallbackToLetter: true,
/* Optionally set a max-height, if null, the height will be measured. */
height : 40,
});
这是我的网页
<div class="mainWrapper">
<div class="drop">
<p class="custom">
Sub Division Title Sub Division Title Sub Division Title
</p>
</div>
</div>
<a class="myBUtton"> click me</a>
对于我的项目,我必须通过单击 .myBUtton 附加该自定义段落。我用了
$('.mainWrapper').on('click', '.myBUtton', function() {
$(".drop").append('<p class="custom">Sub Division Title Sub Division Title Sub Division Title</p>');
});
但是,如果我使用附加方法附加该段落.dotdotdot 函数不起作用。 不附加它正在工作,但不知道为什么附加后它不起作用。有没有适当的方法可以做到这一点。可能是我做错了什么或错过了什么。任何帮助将不胜感激。
谢谢
.myBUtton
不在.mainWrapper
内部,并且将事件委托给非父元素是行不通的,因为事件在链上冒泡,而不是同级元素
$('.mainWrapper').on('click', '.myBUtton', function() {...
使用实际的父元素或文档
$(document).on('click', '.myBUtton', function() {
问题是a.myButton不是.mainWrapper后代的一部分,而是它的兄弟姐妹。这就是您无法利用事件委派的原因。
你可以做
$('.mainWrapper + .myBUtton').on('click', function(e){
$(this).prev().append('<p class="custom">...text here...</p>');
});
或者使用事件委托机制,您必须将处理程序附加到所有元素的第一个共同祖先上.myButton
然后在此处理程序中执行任何您想做的事情,例如$(this).prev().append('<p class="custom">...text here...</p>')
如果其以前的同级仍然是一个.mainWrapper
.。
将$(".custom").dotdotdot({ //your code })
放在函数中,然后在追加事件之后调用此函数。
相关文章:
- 有什么方法可以在下一个元素上进行追加吗
- 重置transform:rotate(),方法是移除并追加在追加和重绘图表后未显示数据的画布
- 对象没有方法'追加'-需要快速帮助
- 这两种使用 jQuery 追加 DOM 元素的方法有什么不同
- 在对象中追加或编辑函数的最快方法是什么
- Angular 在使用 jq 追加方法时是否编译指令
- 追加方法使用 from in a Jquery $getJSON
- 通过追加将方法链接到新插入的元素
- 除了通过JavaScript追加之外,还有其他方法可以将动态数据添加到jQuery移动页面中吗?
- 通过追加方法调用角度指令
- 这是个虫子吗?Jquery追加方法在IE浏览器上工作,纯值类型长会转换
- 如何知道 Javascript 追加方法是否已完成脚本标记
- 将字符串追加到另一个字符串的推荐方法是什么?
- 用jQuery追加新元素的安全方法是什么?
- 如何在jquery或其他方法中获取追加值
- 在jQuery追加方法中改变文本颜色
- 使用jquery.append方法追加一个新的下拉选择器
- 创建DOM元素和追加的另一种编写方法
- 是否有一种方法来追加代码到asp.mvc部分
- 向数组追加一个值的方法是什么?