0

私は、クリックするとajax呼び出しを実行してデータベースに接続し、imagenameを取得し、<-img->内に正しいパスで画像名を設定するスクリプトを持っています。また、その後に非表示のチェックボックスを追加してエコーします。

次に、返されたajaxメッセージを取得し、divのHTMLとして配置します。私の質問は、挿入されたコンテンツに対してより多くのアクションを実行できるようになるかどうかです。

主な目標は、チェックボックスのように画像をクリックできるようにすることです(この部分はすでに並べ替えられています)が、何を試しても.click機能を使用できません。

これがコードです。

これは、画像をエコーするPHPの部分です。

if($_POST['updateIgallery'] == 'ajax'){
    global $wpdb;
    $table_name= $wpdb->prefix . "table_T";
    $imagecounter = 1;
    $toecho = '';
    $currentselected = $wpdb->get_row("query");
    preg_match_all('/\/(.+?\..+?)\//',$currentselected ['image_gal'],$preresualts); // images are stored with /image/.
    foreach ($preresualts[1] as $imagename){
        $toecho .= '
        <img rel="no" id="JustantestID" class="JustaTestClass" src="'.site_url().'/wp-content/plugins/wp-ecommerce-extender/images/uploads/'.$imagename.'">
        <input name="DoorIMGtoDeleteIDcheck'.$imagecounter.'" style="display:none;" name="DoorIMGtoDelete['.$imagecounter.']" value="/'.$imagename.'/" type="checkbox">
        ';
        $imagecounter++;
    }
    echo $toecho;
}

これは、HTMLをdivに送受信および挿入するajax部分です。

$.ajax({
        type: "POST",
        url: "/wp-content/plugins/wp-ecommerce-extender/DB_Functions.php",
        data: { updateIgallery: "ajax", CurrentDoorIDnum: $('#dooridforgallery').val()}
        }).success(function(insertID) {
                $("#ImgGalleryID").html(insertID);
            });

これまでのところ、私が問題を抱えているのは次のとおりです。

$("#JustantestID").click(function() {
//DoorImageGallery($(this).attr('id')); // the function i will use if the alert actually works
    alert("kahdaskjdj");
    return true;
 });

質問とコードが理解できることを願っています。

よろしくお願いします。

4

3 に答える 3

3

要素のhtmlを置き換えると、その中のすべての要素が削除されてなくなります。つまり、それらにアタッチされているイベントハンドラーも削除されます。

ページ上で静的で永続的な高レベルの要素にイベントハンドラーをアタッチしてみることができます。これ以上の情報がなければ、私は使用するつもりですdocument

$(document).on( "click", "#yaniv", function() {
    alert("kahdaskjdj");
});
于 2012-07-28T14:38:41.777 に答える
0
$('img.JustaTestClass').bind('click', function() {
  var checkbox = $(this).siblings('input[type=checkbox]');
  if (!checkbox.is(':checked')) checkbox.attr('checked', true);
  else checkbox.attr('checked', false);
});
于 2012-07-28T14:39:15.610 に答える
0

要素はajaxを使用してDOMに動的に挿入されるため、クリックハンドラーをバインドするときに実際に存在する親要素にイベントを委任する必要があります。この場合は次のようになります。#ImgGalleryID

$('#ImgGalleryID').on('click', '#yaniv', function() {
    DoorImageGallery(this.id);
    alert("kahdaskjdj");
});
于 2012-07-28T14:39:24.853 に答える