jQuery içinde javascript fonksiyon argümanları

4 Cevap php

I am using the JQuery and Javascript.I have onclick event ,that calls the javascript function. How to extract the arguments of function_A and function_B in JQuery? And Is it Any Best way to do It? I need to Do ajax Call after javascript Click. Is any performance based issue while using jQuery?

Benim Kod:

<html>
            <head>
              <script src="http://code.jquery.com/jquery-latest.js"></script>
              <script>
               $(document).ready(function(){
                      //here need to extract the Javascript function arguments
                        var id1=from_javascript_function_A
                        var id2=from_javascript_function_B

                        var link1=from_javascript_function_A
                        var link2=from_javascript_function_B
                      //     


              </script>

            </head>
            <body>
               <a href='#' onclick=javascript:function_A('first',1)>link1</a>
               <a href='#' onclick=javascript:function_B('second',2)>link2</a>

            </body>
            </html>

4 Cevap

Ne bu böyle bir şey?

<script>
    	$(document).ready(function(){
    		$("a.a").click(function(e){
    			DoWork('a',1,function_a);
    		});
    		$("a.b").click(function(e){
    			DoWork('b',2,function_b);
    		});
    	});

    	function DoWork(s,i,f){
    		f(s,i);
    		alert("after click:" + s + " " + i);
    	}

    	function function_a(s,i){
    		alert("a:" + s + " " + i);
    	}
    	function function_b(s,i){
    		alert("b:" + s + " " + i);
    	}

    </script>

</head>
<body>

    <a href="#" class="a">a</a>
    <a href="#" class="b">b</a>
</body>

Eğer yanlış yapıyorsun gibi bunu yapmak için çalışıyoruz ne belirsiz gibi ben emin değilim ama öyle görünüyor. What are you trying to do? Please edit your question and add more information!

Eğer gerçekten işlev çağrıları gelen parametreleri ayıklamak istiyorsanız, örneğin, manuel ayrıştırma bir demet yapmak gerekir.

$("a").each(function(){
  var onclicktext = $(this).attr("onclick");
  if(onclicktext.indexOf("function_A") > -1){
    // Do more parsing here
  }
  if(onclicktext.indexOf("function_B") > -1){
    // Do more parsing here
  }  
});

Fonksiyon argümanları yalnızca o işlev içinde görünür olması içindir. Genellikle onlar değişkenleri ve (gelen bağlantı tıklandığında, sizin örnekte) kendi değeri yalnızca işlevi çağrılır anı anlam olacaktır. $ (Document). Hazır içinde, onların değeri önemli değildir.

Argümanlar değişkenler değil durumda, bunlar bilinen ve yine bu soruyu soran olmaz.

Ben html kod düzenlemek olamaz herhalde? Eğer bu doğruysa, o zaman yapabileceğiniz tüm bazı çirkin kesmek olduğunu:

$("a").each(function(){
  fnStr = ($(this).attr('onclick')).toString();
  re = /\"[^\"]+\"/
  alert(re.exec(fnStr));
  re = /\'[^\"]+\'/
  alert(re.exec(fnStr));
});

Yukarıdaki kod tırnak arasındaki parametreleri almak için normal ifadeler kullanır. Kendiniz deneyin, farklı tarayıcılarda farklı davranış olabilir.