2011-10-30 117 views
2

使用單一的動態選擇我沒有問題:多個動態選擇使用變量

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... 

任何想法我做錯了什麼?

回答

4

你需要逗號裏面的所引用的常量字符串。

$('#a_flag_' + answer_id + ', #a_comments_link_' + answer_id + ', #a_best_answer_' + answer_id).click(// /// 

你想落得什麼是一個字符串,它看起來像

"selector, selector, selector, ..." 

,所以你需要連接一串用逗號分隔的字符串。

或者,您可以在字符串數組中構建單獨的選擇器,然後使用逗號分隔符(參數爲「.join()」)「.join()」。

+0

謝謝pointy--救了我一小時的串連地獄:) – pepe

1

你應該把昏迷內的字符串不在外面,你忘記了加號。

$('#a_flag_' + answer_id + ', #a_comments_link_' + answer_id +',#a_best_answer_' + answer_id) 
1

當它開始看起來太複雜時,它可能是。 FWIW:

var selectors = [ 
    '#a_flag_' + answer_id, 
    '#a_comments_link_' + answer_id 
    // etc. 
] 
$(selectors.join(", ")).click(...) 

快樂編碼。

+0

thx爲提示pst – pepe