1

我敢肯定这是一个菜鸟问题,所以对我轻松一点。我想将选择器(如果存在)作为参数传递给函数。这就是我的代码的样子:

function updateLinkedElements(element) {
    process the element;
}

// Ensure that the related elements is set properly on initialization.
$('#edit-type-config-associated-element').updateLinkedElements(this);

我想将由#edit-type-config-associated-element 标识的选择器传递给函数updateLinkedElements。这里的问题是我希望在选择器存在时调用这个函数(目前它是动态加载的)。

这行得通吗?还是我需要以不同的方式做到这一点?

谢谢

4

6 回答 6

2

您可以使用该语法,但实际上您必须创建一个 jQuery 插件来执行此操作。例如:

(function($){  
    $.fn.updateLinkedElements = function() {  
        return this.each(function() {  
            // use $(this) to access any elements matched by the selector
        });  
    };  
})(jQuery);  
于 2013-10-25T18:20:27.127 回答
1

要使用这样的方法,请将其设为 jQuery 插件:

$.fn.updateLinkedElements = function(){
  return this.each(function(i, el){
    // process element el
  });
};

用法:

$('#edit-type-config-associated-element').updateLinkedElements();
于 2013-10-25T18:18:46.497 回答
0

你为什么不这样做:

updateLinkedElements($("#edit-type-config-associated-element"));
于 2013-10-25T18:17:34.747 回答
0

不,因为您的函数不是 jQuery 对象的方法。做就是了:

updateLinkedElement($('#edit-type-config-associated-element')

如果事实证明您希望使用选择器中的多个元素执行此操作,请使用 each() http://api.jquery.com/each/

那么它会变成:

$(<selector>).each(function() { updateLinkedElement(this); });
于 2013-10-25T18:17:58.667 回答
0

用作$('#edit-type-config-associated-element')选择器

于 2013-10-25T18:18:21.587 回答
0

您可以做两件事来使用对象的参数调用以上述方式定义的函数 - 将该选择器作为字符串传递并定位函数中的元素......

updateLinkedElements('#edit-type-config-associated-element');

或者其次事先抓取元素并将该对象作为参数传递给函数

var el = document.getElementById('#edit-type-config-associated-element');

updateLinkedElements(el);

如果您希望使用 jquery 点表示法,您将使用上述方法制作“插件”

于 2013-10-25T18:18:39.620 回答