3

スパンを作成する document.ready() で呼び出される関数があります。

function configureContentSelector() {
  for (j=0; j<centerContent.length; j++)
    {
        var content = "<span class='contentSelector' onclick='changeContent(" + j + ")' id='span'" + j + ">" + j  + "</span>";
        $("#contentSelectorArea").html($("#contentSelectorArea").html() + content); 

   }

スパンは、span0、span1 などのように ID 化されていることに注意してください。

スパンに関係のないイベントが発生したときに呼び出される別の関数内で、スパン クラスを操作したい (addClass() removeClass())

$("#" + "span" + i).removeClass("contentSelector");
$("#" + "span" + i).addClass("contentSelectorSelected");

ただし、これは機能しません。この問題は、スパンが動的に作成されるという事実に関連していると思いますが、これを修正する方法がわかりません。

助けてくれてありがとう。

4

4 に答える 4

3

間違ったidsを作成します(それらはすべてid = spanを持っています):

var content = "<span class='contentSelector' onclick='changeContent(" + j + ")' id='span'" + j + ">" + j  + "</span>";

これを試して:

var content = "<span class='contentSelector' onclick='changeContent(" + j + ")' id='span" + j + "'>" + j  + "</span>";

ところで、あなたの引用はにする必要があります:

var content = '<span class="contentSelector" onclick="changeContent(' + j + ')" id="span' + j + '">' + j  + '</span>';
于 2012-07-10T16:13:44.933 に答える
3

ここにエラーがあると思います

id='span'" + j + ">"

への変更

id='span" + j + "'>"

と使用

$("#contentSelectorArea").append(content);
于 2012-07-10T16:14:56.197 に答える
2

IDを削除してdata-*属性を使用します(とにかくID宣言に構文エラーがあります)。

var content = "<span class='contentSelector' onclick='changeContent(" + j + ")' data-spanid='" + j + "'>" + j  + "</span>";

data-*次に、属性を使用して選択できます。

$("span[data-spanid='" + i + "']");
于 2012-07-10T16:13:48.560 に答える
1

コントロールの作成中に単純なエラーが発生しました。作成されるid属性の引用符を確認してください。

これを使用すると、正常に動作します。

var content = "<span class='contentSelector' onclick='changeContent(" + j + ")' id='span" + j + "'>" + j  + "</span>";
于 2012-07-10T16:15:36.847 に答える