webForumDet fria alternativet

TR Edit Ajax Jqury

3 svar · 432 visningar · startad av dwmedia

dwmediaMedlem sedan nov. 2006188 inlägg
#1

Mitt TR Edit script så klickar man på en tr så fälls den ut och skriver, problemet är att tr innehar också länkar, så tänkte försöka få den till fungera när jag har valt 1 eller flera select sedan klicka på en knapp istället.

Än att ha det direkt när man klickar på TR, det störde jag mig lite på.

Har provat byta ut denna linje.
$(".tr_line").click(function() {

till men det då händer det inget alls :/

$(".case").click(function() {

$(function(){
	$("#selectall").click(function () {
		  $('.case').attr('checked', this.checked);
	});
	$(".case").click(function(){
		if($(".case").length == $(".case:checked").length) {
			$("#selectall").attr("checked", "checked");
		} else {
			$("#selectall").removeAttr("checked");
		}
	});
});

// TR Edit  .tr_line
$(document).ready(function() {
$(".tr_line").click(function() {
var ID=$(this).attr('id');
$("#campaign_"+ID).hide();
$("#bugget_"+ID).hide();
$("#campaign_input_"+ID).show();
$("#bugget_input_"+ID).show();
}).change(function() {

var ID=$(this).attr('id');
var campaign=$("#campaign_input_"+ID).val();
var bugget=$("#bugget_input_"+ID).val();
var dataString = 'id='+ ID +'&campaign='+campaign+'&bugget='+bugget;
$("#campaign_"+ID).html('<img src="../../../advertising/images/rot_small.gif" />');

if(campaign.length && bugget.length>0)
{
	$.ajax({
		type: "POST",
		url: "../../../ads/ajax/campaigns_table_edit_ajax.php",
		data: dataString,
		cache: false,
		success: function(html)
	{

	$("#campaign_"+ID).html(campaign);
	$("#bugget_"+ID).html(bugget);
}
});
} else {
alert('Enter something.');
}

});

$(".ttext").mouseup(function() {
return false
});

$(document).mouseup(function() {
$(".ttext").hide();
$(".text").show();
});

});

Så här kör jag på TR och det

<tr id='1669470' class='tr_line'>

        \<td class='td_name_user' align='left' valign='top'\>
        \<span id='campaign_1669470' class='text'\>\<a href='../adgroups.php?campaign_id=1669470&act=174039'\>SMSnetwork.org\</a\>\</span\>
        \<input type='text' value='SMSnetwork.org' class='ttext' id='campaign_input_1669470' /\>
        \</td\>

        \<span id='bugget_1669470' class='text'\>kr100,00\</span\>
        \<input type='text' value='100,00' class='ttext' id='bugget_input_1669470' /\>\<br /\>\<span\>Daily\</span\>\</td\>
voigtann1Medlem sedan juni 20019 519 inlägg
#2

Rättar mig om jag har fel men change event på en tr känns som det aldrig någonsin kommer triggas om du inte triggar det eventet själv. Change (igen, vad jag känner till) finns väl bara på formulär element(input, textarea).

Sen gå du emot html dokumenten när du använder tal i idn, ett id får inte börja med ett tal.

Sen använd indentering i dina koder, är jätte svårt att läsa vad som gör vad just nu.

.case finns ju inte någonstans i din html exempel som du skickar, var finns den?

din case kod känns som du kan optimera den en hel del, nu letar du upp samma kollektion mer eller mindre 3 ggr, vilket kan bli mer effektivt med:

var case = $(".case").click(function(){
    if(case.length == case.filter(":checked").length) {
        $("#selectall").attr("checked", "checked");
    } else {
        $("#selectall").removeAttr("checked");
    }
});
dwmediaMedlem sedan nov. 2006188 inlägg
#3

Med den där kodsnutten bytte man ut den så slutade den och läsa alla övriga ajax script. Samt så slutar den markera alla select. :(

voigtann1Medlem sedan juni 20019 519 inlägg
#4

om .case elementen skapas med ajax så måste du binda eventen då, inte så fort DOM-readyn är klar, .case finns inte då... du kan kolla jquerys delegate (.on om du kör den senaste versionen av jquery). för att binda framtida elements events

128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)