Javascript 引导模式相关目标未定义
我试图使用Javascript 引导模式相关目标未定义,javascript,jquery,twitter-bootstrap,twitter-bootstrap-3,Javascript,Jquery,Twitter Bootstrap,Twitter Bootstrap 3,我试图使用show.bs.modal事件的属性relatedTarget获取单击的元素。但它总是变得不明确 这就是我所拥有的: $("#curCarSelect").on('click', function(e) { $("#curCarModal").on('show.bs.modal', function(event) { modalOpenedby = event.relatedTarget; alert(modalOpenedby); }).
show.bs.modal
事件的属性relatedTarget
获取单击的元素。但它总是变得不明确
这就是我所拥有的:
$("#curCarSelect").on('click', function(e) {
$("#curCarModal").on('show.bs.modal', function(event) {
modalOpenedby = event.relatedTarget;
alert(modalOpenedby);
}).modal('toggle');
});
试试这个:
$('#curCarModal').on('shown.bs.modal', function () {
modalOpenedby = event.relatedTarget;
});
$("#curCarSelect").on('click', function(e) {
$("#curCarModal").modal('toggle');
alert(modalOpenedby);
});
:
如果是由单击引起的,则单击的元素可作为事件的relatedTarget
属性使用
但您只是在调用
.modal('toggle')
这不涉及任何点击事件,因此在您的案例中,relatedTarget
处于未定义状态。我让它为我工作。试试这个:
$("#curCarSelect").on('click', function(e) {
$("#curCarModal").on('show.bs.modal', function(event) {
modalOpenedby = event.relatedTarget;
alert(modalOpenedby);
}).modal('toggle', e);
});
尝试:
其中$modal是要打开的模态元素,然后:
$modal.on('show.bs.modal', function (event) {
var button = $(event.relatedTarget) // Button that triggered the modal
})
在bootstrap 2上,此解决方案对我很有效:
$("a[data-toggle='modal']").on('click', function(e) {
$_clObj = $(this); //clicked object
$_mdlObj = $_clObj.attr('data-target'); //modal element id
$($_mdlObj).on('shown.bs.modal',{ _clObj: $_clObj }, function (event) {
$_clObj = event.data._clObj; //$_clObj is the clicked element !!!
//do your stuff here...
});
});
如果需要在动态打开的模式中使用
event.relatedTarget
,则可以将目标作为模式函数中的第二个参数传递
$("#curCarSelect").on('click', function(e) {
$("#curCarModal").modal('toggle', $("#curCarSelect"));
});
请不要使用“bootstrap”标签,使用“twitter bootstrap”,因为它意味着其他东西。您可以发布与点击事件相关的代码,这样
relatedTarget
就不会未定义?我正试图了解这一点非常糟糕,一个基于BS3.2.2的工作示例将是ace!谢谢;)当您使用data toggle=“modal”
@lowtechsun时,它将被定义。您是否能够理解这一点?@user1149244我很久以前就离开了引导,很可能永远不会碰它。调查一下,或者如果你愿意的话,只是一个建议。对于解决方案检查,它应该可以正常工作。这应该是公认的最佳答案。当前“最佳”的一个是无用的。访问事件对象时未定义元素这应该在引导文档中。事件在chrome浏览器中自动传递这可能会在浏览器中失败,而在Firefox中事件不会自动传递。
$("#curCarSelect").on('click', function(e) {
$("#curCarModal").modal('toggle', $("#curCarSelect"));
});