0

「リンクを追加」と「テキストを追加」の 2 つのボタンがあるとします。「リンクを追加」ボタンは、既存のページに以下を自動的に追加します。

<a href="text.html"></a>

「テキストを追加」ボタンをクリックすると、作成されたすべての動的リンクのテキストに「テキスト」というテキストが含まれている必要があります。

「テキストを追加」ボタンの機能に本来は「$("a").text("Text")」を使っているのですが、ユーザーが「リンクを追加」ボタンをクリックすると動的にリンクが作成されるため動作しません。 .

動的に作成されたすべてのリンクに「テキスト」を取得できるようにするにはどうすればよいですか?

注:このようなもの

$('buttonforaddtext').live('click', function() {
    $("a").text("Text");
});

「リンクを追加」ボタンをクリックすると動的に作成される「a」ボタンがずっとそこにあるため、私には機能しません。

4

6 に答える 6

1

コメントで述べたように、以下のようにしてみてください。

$('#addLink').on('click', function () {
    $(body).append('<a href="' + someURL + '" class="newLink"></a>');
});

$('#addText').on('click', function () {
    $('a.newLink').text('New Link'); 
});
于 2012-05-04T18:51:25.423 に答える
1
$('button').on('click', function() {
   /* your code */
});

動的オブジェクトがある場合は.on()、それを機能させるために使用する必要があります...

于 2012-05-04T18:48:25.627 に答える
0
var yourLink = $("<a href="+someURL+">"+yourText+"</a>");

また

var yourLink = $("<a href="+someURL+"/>");
yourLink.html("Text");

それから

yourLink.appendTo($('body'));

それは、@ 同時に作成したい場合です

于 2012-05-04T18:48:20.897 に答える
0

同僚が以前言ったように、「.live」メソッドを使用する必要があります。イベントをバインドしようとしている瞬間に、要素が存在せず、機能しないことがあります。

.live を使用すると、ウィンドウは選択した要素をリッスンし続けます。

jQuery 1.7.+ を使用している場合は、.on() メソッドを使用してイベントをバインドし、.off() メソッドを使用してバインドを解除することをお勧めします...

PS.: ところで、何を選択しようとしていますか?

$('buttonforaddtext')
于 2012-05-04T18:56:45.550 に答える
0

あなたの問題はおそらく、 live が非推奨になっているか、あなたが持っていると思う HTML を持っていないことです。テキスト挿入のためにコールバックで A タグを再クエリし、ボタンは静的 HTML であるため、「live」、「delegate」、または「on」は必要ありません。シンプルな .click を実行するだけです

于 2012-05-04T19:02:56.190 に答える
0

あなたが説明することは私にはうまく聞こえます。たぶん、使用しているコードを投稿する必要があります。以下はうまくいくはずです:

$('#addLink').click(function(){
    $('body').append('<a href="text.html"></a>');
});

$('#addText').click(function(){
    $('a').text('Text');
});

クリック イベントが発生した後に jQuery オブジェクト ($('a')) が作成されている限り、すべてが説明どおりに機能するはずです。

于 2012-05-04T18:49:30.827 に答える