0

これは何度か回答されていますが、私のものは別のアプローチです。

クリック時にテキストを (jQuery 経由で) 切り替えたい。しかし、このテキストをhtmlで定義したいので(多言語であり、言語、より正確にはSmarty変数に依存しているため)、$(this).html(condition ? "Some" : "Other" )機能しません。

私の実際のアプローチは次のとおりです。

HTML

<a class="readmore" href="#content">
    <span class="text" rel="Menos">Más</span>
</a>

JS

$(".readmore").click(function(event) {
    var contentSelectAnt = $(this).find(".text").html();
    var contentSelect = $(this).attr("rel");
    $(this).find(".text").html(contentSelect);
    $(this).attr("rel",contentSelectAnt);
)};

しかし、コードの冗長性と属性の不適切な使用はあまり好きではありませんrelもっとjqueryスタイルのソリューションがあると確信しています。

読んでくれてありがとう。

4

3 に答える 3

1

data メソッドを介してデータを添付できます。ただし、初期状態と反対状態の問題はまだあります。

<a href="#content" data-content="SomeOtherContent">Text</a>

$('a').click(function()
{
     var currentObj = $(this);
     var currentText = currentObj.html();
     currentObj.html(currentObj.data('content'));
     currentObj.data('content', currentText);
});
于 2011-05-10T15:24:17.840 に答える
1

私は実際にあなたがやろうとしていることを理解するのに苦労していますが、DEMOをまとめました

それがあなたの言いたいことかどうかはわかりませんが、それが質問に対する私の理解でした。

編集:

適切な機能を備えたデモ 2 ?

アンカータグを使用しないデモ 3 。

于 2011-05-10T15:34:10.270 に答える
0

2つのスパンを使用するだけではどうですか:

<a class="readmore" href="#content">
    <span class="text">Más</span>
    <span class="text" style="display: none;">Menos</span>
</a>

JavaScript の場合:

$(".readmore").click(function(event) {
    $(this).find('.text').toggle();
    return false;    
 });

ここにデモがありますhttp://jsfiddle.net/Fq4bT/

于 2011-05-10T15:25:00.707 に答える