使用单个动态选择器我没有问题:
var answer_id = <?php echo $answer_id; ?>;
$('#a_flag_' + answer_id).click(function(e) {
e.preventDefault();
//Ajax etc...
但是如果我添加了几个动态选择器,它们就不起作用(即,Firebug控制台上没有错误,但点击时也没有动作):
var answer_id = <?php echo $answer_id; ?>;
$('#a_flag_' + answer_id,'#a_comments_link_' + answer_id,'#a_best_answer_' + answer_id).click(function(e) {
e.preventDefault();
//Ajax etc...
任何想法我做错了什么?
答案 0 :(得分:4)
你需要逗号内部引用的常量字符串。
$('#a_flag_' + answer_id + ', #a_comments_link_' + answer_id + ', #a_best_answer_' + answer_id).click(// ///
您最终想要的是一个看起来像
的字符串"selector, selector, selector, ..."
所以你需要用逗号连接一堆字符串。
或者,您可以在字符串数组中构建单独的选择器,然后使用逗号分隔符(“.join()”的参数“.join()”。
答案 1 :(得分:1)
你应该把逗号放在字符串里面而不是外面,你忘记了加号。
$('#a_flag_' + answer_id + ', #a_comments_link_' + answer_id +',#a_best_answer_' + answer_id)
答案 2 :(得分:1)
当它开始看起来太复杂时,很可能是。 FWIW:
var selectors = [
'#a_flag_' + answer_id,
'#a_comments_link_' + answer_id
// etc.
]
$(selectors.join(", ")).click(...)
快乐的编码。