2011-07-23 5 views
1

Ceci est mon code. Cela fonctionne pour Firefox, Chrome mais pas dans IE7.Jquery onclick ne fonctionne pas à IE7

marques arr (nombre + 1) pour chaque ligne ..

$("#div-id1 a").attr("onclick", function (arr) { 
    return "document.getElementById('row1').value+=" + arr; 
}); 
$("#div-id2 a").attr("onclick", function (arr) { 
    return "document.getElementById('row2').value+=" + arr; 
}); 

<input id="row1" type="text" name="row1" value="" /> 
<input id="row2" type="text" name="row2" value="" /> 

Mes codes js sont entre ce.

jQuery(function($){...code...}); 

J'ajoute unclick, parce que les liens ressemblent à ceci.

<a>Hello World</a>

sortie Code

est:

<a onclick="document.getElementById('row1').value+=1">Hello World</a> 

Quelqu'un peut-il me montrer par exemple travailler?

+1

Pourquoi définissez-vous l'attribut? Utilisez simplement '$ ('# div-id1 a'). Click (function() {...});' et pour obtenir la valeur, '$ ('# row1'). Val()' –

Répondre

2

Mettez dans un $(document).ready(...:

$(document).ready(function() { 
    $("#div-id1 a").attr("onclick", function (arr) { 
     return "document.getElementById('row1').value+=" + arr; 
    }); 
    $("#div-id2 a").attr("onclick", function (arr) { 
     return "document.getElementById('row2').value+=" + arr; 
    }); 
}); 

S'il vous plaît lire http://api.jquery.com/ready/

2

Ne vantez pas défini onclick - passer une fonction à la fonction clic jquery

$("#div-id1 a").click(function() { 
    /* Code here */ 
}); 

Pouvez-vous expliquer davantage à propos de arr si? Vous devrez apporter quelques modifications au code pour le faire fonctionner avec le clic au lieu de l'attr.

4

Vous le faites mal.

L'ajout d'une fonction à l'attribut onclick va-t-il fonctionner? oui, dans certains navigateurs, mais vous n'utilisez pas bien les événements normalisés de jQuery. La façon jQuery de mettre un événement click est d'utiliser click(fn) ou bind('click', fn) ou live('click', fn)

De plus, puisque vous ne l'avez pas montré où votre script est en relation avec le HTML, il est possible que les éléments dom DonT existent encore. L'utilisation de live va déléguer l'événement au document afin qu'il continue à détecter les nouveaux éléments correspondant au sélecteur. Sinon, vous pouvez utiliser l'événement document ready:

Forme longue:

jQuery(document).ready(function($){...code...}); 

Forme courte:

jQuery(function($){...code...}); 

Pour plus d'informations, vous devriez lire le jQuery api.