您必须附加跨度(例如附加到主体),然后它应该可以工作,因为那将是那里的“最后一个”。
例子:
var $someparam = 'is';
$('body').append('<span>spanner</span>');
$('span :last').text($someparam);
$(document).on('click', 'span :last', function() {
$(".somediv").not(":contains('" + $someparam + "')").addClass("hidden");
});
编辑:请注意,这具有相同的净效果:
var $someparam = 'is';
$('body').append('<span>' + $someparam + '</span>');
$(document).on('click', 'span :last', function() {
$(".somediv").not(":contains('" + $someparam + "')").addClass("hidden");
});
这是最有效的:使用 id
var $someparam = 'is';
$('body').append('<span id="myspan">' + $someparam + '</span>');
$('#myspan').on('click', function() {
$(".somediv").not(":contains('" + $someparam + "')").addClass("hidden");
});
并且,使用参数作为 id 的一部分:
var $someparam = 'is';
$('body').append('<span id="myspan' + $someparam + '">' + $someparam + '</span>');
$('#myspan'+ $someparam ).on('click', function() {
$(".somediv").not(":contains('" + $someparam + "')").addClass("hidden");
});
EDIT2:添加示例页面以及每个页面的工作示例。这有点做作,但显示了上述每一项以及通过按钮添加的一个动态跨度,该按钮可单击任意次数。(点击1-4,然后新建span看看效果)...
不,id 不能包含逗号,在允许的集合中只能包含“字母”(参见 html 规范)和数字,并且必须以非数字开头
http://jsfiddle.net/Cecfu/1/