2010-07-28 45 views
1

因此,我試圖在Visualforce中創建一個頁面(salesforce的頁面創建器),並且遇到了javascript方面的問題。基本上應該發生的是該部分將生成一系列鏈接。 JavaScript需要點擊這些鏈接。我使用jQuery這裏我的jquery javascript有什麼問題?

<apex:page standardcontroller="Account" extensions="maininvoice"> 

<apex:repeat value="{!theListOfIDs}" var="anId"> 
<apex:outputLink target="_blank" value="{!URLFOR($Page.invoice2,anId)}" styleClass="name" /> 
</apex:repeat> 

<apex:includeScript value="{!URLFOR($Resource.jquery, 'js/jquery-1.4.2.min.js')}"/> 
<script type="text/javascript"> 
var j$ = jQuery.noConflict(); 
j$(document).ready(function(){ 

var anchortags = j$('.name'); 

      for(i=0;i<=anchortags.length;i++){ 
       var currentTag=anchortags[i];       
        currentTag.trigger(click); 
        alert("your mother"); 
        } 
      } 
      ); 

</script> 

</apex:page> 
+0

這真的會幫助你找出一個問題。嘗試用你的javascript創建一個測試頁面。一旦你得到你的JavaScript工作,然後將其放入salesforce環境。 Salesforce標籤和這裏的實際上只是額外的噪音,使得這看起來更復雜。 – Akrikos 2010-08-02 15:29:26

回答

2

回答您的具體問題,這樣的:currentTag.trigger(click);應該是:currentTag.trigger('click');

但是,來吧,jQuery可以一次性做這一切爲你:

$('.name').click(); 
+0

事情是,currentTag將成爲我認爲的DOM元素引用,所以如果他想讓它工作,他需要編寫'$(currentTag).trigger('click');' - 但他真的可以避免循環完全是因爲jQuery很樂意爲他做。我猜這是很好,但是,這個不正確的答案是讓你upvotes :) – Pointy 2010-07-28 19:28:27

2

你很混亂了jQuery編碼與「傳統」編碼,它不起作用。試試這個:

var anchortags = j$('.name'); 

anchortags.click(); 
1

事情是這樣的:

var j$ = jQuery.noConflict(); 
j$(function(){ 
    j$('.name').click(); 
}); 

j$(function(){...});相同j$(document).ready(function(){...});

click()功能在以前的列表(j$('.name')),每場比賽將被執行。因此使用.each(function(){...});是冗餘的。

0
var j$ = jQuery.noConflict(); 
j$(document).ready(function(){ 
    j$('.name').each(function() { 
     j$(this).trigger('click'); 
    });