将触发器与动态内容一起使用
Using trigger with dynamic content
我正在动态加载包含一系列按钮的内容。我想在按下第一个按钮时触发对第二个按钮的单击,但是触发器事件永远不会触发。
jQuery
$(document).on('click', '.main-button', function() {
var self = $(this).attr('class').split(' ')[0];
$('button.' + self + '.product-id').trigger('click');
});
.HTML
<div class="button-wrap">
<button class="b-1 main-button"></button>
<button class="b-1 product-id"></button>
</div>
<div class="button-wrap">
<button class="b-2 main-button"></button>
<button class="b-2 product-id"></button>
</div>
实际类名中不需要点,只需要在 css 选择器中。而不是您想要class="b-1 .main-button"
:class="b-1 main-button"
.其他类也是如此。
注意:您还必须为产品按钮设置一个 onclick 处理程序,否则您将看不到点击。
$(document).on('click', '.main-button', function() {
var self = $(this).attr('class').split(' ')[0];
$('button.' + self + '.product-id').trigger('click');
});
$(document).on('click', '.product-id', function() {
var klass = $(this).attr('class');
alert(klass + " prod button triggered");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="button-wrap">
<button class="b-1 main-button">B1 main</button>
<button class="b-1 product-id">B1 prod</button>
</div>
<div class="button-wrap">
<button class="b-2 main-button">B2 main</button>
<button class="b-2 product-id">B2 prod</button>
</div>
我解释你的问题的方式是:
- 当我点击
.b-1
时,就会点击.b-2
。 - 从第一个按钮单击与按类名单击第二个按钮相关联,分别表示
.b-1.main-button
.b-2.main-button
和.b-1.product-id
.b-2.product-id
。
注意:您的代码有一个错误,您在 HTML 中错误地标记了类。因此更改:
<div class="button-wrap">
<button class="b-1 .main-button"></button>
<button class="b-1 .product-id"></button>
</div>
<div class="button-wrap">
<button class="b-2 .main-button"></button>
<button class="b-2 .product-id"></button>
</div>
分为以下内容:
<div class="button-wrap">
<button class="b-1 main-button"></button>
<button class="b-1 product-id"></button>
</div>
<div class="button-wrap">
<button class="b-2 main-button"></button>
<button class="b-2 product-id"></button>
</div>
现在进入处理触发器()的JQuery。这是非常简单的。单击某个按钮时,触发另一个按钮上的单击事件:
$(document).ready(function(){
// Trigger click when clicking on respective b-1 button
$(".b-1.main-button").click(function(){
$(".b-2.main-button").trigger("click");
});
$(".b-1.product-id").click(function(){
$(".b-2.product-id").trigger("click");
});
// Show an alert to identify which click was triggered
$(".b-2.main-button").click(function(){
alert("Main Button 2");
});
$(".b-2.product-id").click(function(){
alert("Product Button 2");
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="button-wrap">
<button class="b-1 main-button">Main Button 1</button>
<button class="b-1 product-id">Product Id 1</button>
</div>
<div class="button-wrap">
<button class="b-2 main-button">Main Button 2</button>
<button class="b-2 product-id">Product Id 2</button>
</div>
如果我正确解释了您的问题,那么您应该基于上述解决方案。您有任何问题,请在下面的评论中提出。
相关文章:
- 转义符不能与innerHTML一起使用
- 悬停功能触发器
- 高亮显示与数组字符串一起使用时文本插件中断
- setTimeout可以与闭包内的函数一起使用吗
- 将依赖外部库的UMD模块与browserfy捆绑在一起
- Highcharts colorsByPoint与系列中的线性渐变一起使用时不起作用
- 如何将js库与typescript一起使用
- jQuery触发器点击未从AJAX成功工作
- 将webpack和babel与父项目目录中的文件一起使用
- 将 Drag&Drop 与 jsTree 和 DataTables 一起使用
- Javascript-如何让脚本与Ajax请求的数据一起运行
- 将两个ext.TabPanels滚动到一起
- 将jQuery UI Timepicker Addon与React一起使用
- 什么是curl以及如何将其与nodejs一起使用
- Javascript”;onmousemove”;事件无法与类一起使用
- 为什么会返回触发器('点击')
- 有没有一种方法可以检测ios<>使用jquery和触发器操作形成导航按钮
- 将require('..')与变量一起使用与在webpack中使用字符串相比
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- 将触发器与动态内容一起使用