如何在jQuery中的链接函数之间传递元素?

时间:2015-09-22 12:56:30

标签: jquery

正如您在下面的代码中所看到的,我将不得不在链中再次搜索和定义var img ...我将不得不继续搜索并为任何其他链接函数定义它。我认为必须有更好的方法。那么,将一个元素传递给链进行操作的正确方法是什么?

$('#myModal').on('show.bs.modal', function(e) {
    var img = $(this).find('img');

    $(img).show();
}).on('hide.bs.modal', function (e) {
    $(img).hide();
    //Uncaught ReferenceError: img is not defined
});

2 个答案:

答案 0 :(得分:1)

Demo

您可以使用如下全局变量。

var img;
$('#myModal').on('show.bs.modal', function(e) {
    img = $(this).find('img');

    $(img).show();
}).on('hide.bs.modal', function (e) {
    $(img).hide();
    //Uncaught ReferenceError: img is not defined
});

另外,我准备了一个示例演示,您可以看到here

答案 1 :(得分:0)

<强>建议

由于您使用ID来定位图像元素,因此最佳解决方案是在链的范围之外定义元素以防止多个变量声明(因为在给定时间页面上只能有一个ID) )。

另一个需要理解的是,链接方法只是用于调用对象上的多个函数的语法糖。就他们的范围而言,您可能也会在不同的行上调用它们,因为它们之间不共享任何信息。

示例

var $modalImg = $('#myModal img');

$('#myModal').on('show.bs.modal', function(e) {
    $modalImg.show();
}).on('hide.bs.modal', function (e) {
    $modalImg.hide();
});

如果您需要进一步澄清,请与我们联系。