2

画像がクリックされたときに関数を起動したいのですが、その関数はURLにヒットしてパラメーターを渡し、URLから取得した値で含まれているdivのクラスを更新します。

誰かがこのためのコードを手伝ってくれますか?

私のDOMは次のようになります。

<div class="c1"><img src="/images/hello.jpg"/></div>

私のURLはhttp://www.example.com/ajax/image.aspx?className=c1です。

したがって、現在のクラス名を渡すajaxリクエストを使用してそのURLに移動すると、たとえば、が返されc2ます。次に、divのクラスをc2コールバックを使用するように更新します。

4

3 に答える 3

1

これは、サービスからプレーンテキストを返すことだけを想定しています。質問に返品コンテンツの形式のサンプルを含めると便利な場合があります。removeClass関数が必要かどうかもわかりませんが、とにかく追加しました。

$('c1 > img').click(function() {
  var img = $(this);
  $.get('http://www.example.com/ajax/image.aspx?className=c1', null, function(data){
    img.closest('div').removeClass('c1').addClass(data);
  });
});
于 2009-02-11T03:05:42.147 に答える
1

これは、div が 1 つのクラスのみで始まることを前提としています。複数のクラスがある場合は、目的のクラスを取得するために何らかの作業を行う必要があります。

$('img').click(function() {
  var $img = $(this);
  var $div = $(this).parent();
  var divClass = $div.attr('class');
  var url = 'http://www.example.com/ajax/image.aspx';

  $.ajax({
    'type' : 'get', // change if needed
    'dataType' : 'text', // data type you're expecting
    'data' : { 'className' : divClass },
    'url' : url,
    'success' : function(newClass) {
      $div.removeClass(divClass); // if needed
      $div.addClass(newClass);
    }
  });
});
于 2009-02-11T23:00:17.080 に答える
0

新しいクリック(c1、c2、c3、...)ごとにクラスを更新し続けたいと思いますか?

var classname = 'c1';
$('div.' + classname + ' > img').click(function() {
  var div = $(this).closest('div');
  var url = 'http://www.example.com/ajax/image.aspx?className=' + classname;
  $.get(url, null, function(data){
    div.removeClass(classname).addClass(data);
    classname = data;
  });
});

また、画像だけでなく、div全体でクリックチェックを実行することもできます。

var classname = 'c1';
$('div.' + classname).click(function() {
  var div = $(this);
  var url = 'http://www.example.com/ajax/image.aspx?className=' + classname;
  $.get(url, null, function(data){
    div.removeClass(classname).addClass(data);
    classname = data;
  });
});
于 2009-02-11T03:17:18.360 に答える