Это потому, что (AFAIK) вы не можете поместить выражение в качестве идентификатора в конструктор хеша, потому что они автоматически заключаются в строки.
Другими словами, это действительный JavaScript
$(this).load(url, {name: "Foo", age: 13});
Здесь есть ключи name
и age
. В JavaScript вам не нужно заключать в кавычки ключи хэша, хотя в строгом JSON цитирование необходимо для ключей. (Но цитирование не повредит. И в некоторых случаях, как предложил Джордан в комментариях, необходимо, например, чтобы вы использовали зарезервированные слова, такие как var
, в качестве ключа хеширования)
Чтобы достичь желаемого эффекта, я бы предложил длинное решение (кто-нибудь умный, кто-нибудь еще?)
var varname = "class_id";
var data = {all_ids: allids};
data[varname] = openedid;
$(this).siblings('.container').load(loadurl, data);