0

我在 UIWebView 中显示的网页上有一个 Javascript 函数:

$(document).ready(function() {
   // index to reference the next/prev display
var i = 0;
   // get the total number of display sections
   //    where the ID starts with "display_"
var len = $('div[id^="hl"]').length;


   // for next, increment the index, or reset to 0, and concatenate 
   //    it to "display_" and set it as the hash
$('#next').click(function() {
    ++i;
    window.location.hash = "hl" + i;
    return false;
});


   // for prev, if the index is 0, set it to the total length, then decrement
   //    it, concatenate it to "display_" and set it as the hash
$('#prev').click(function() {
    if (i > 1)
    --i;
    window.location.hash = "hl" + i;
    return false;
});

});

所以我需要做的是在单击 UIButton 时模拟锚点单击:

- (IBAction)next:(id)sender {
    [animalDesciption stringByEvaluatingJavaScriptFromString:@"document.getElementById(\"next\").click();"];
}

但这不起作用!它在 HTML 页面上效果很好,只需单击 id 为“next”的锚点。

任何想法为什么单击按钮时这不起作用?

顺便说一句,我可以像myFunc()我当前的设置一样调用标准的 javascript 函数,但它不会做这样的事情!

任何想法将不胜感激!

4

1 回答 1

2

您可以为下一个和上一个实现 javascript 函数,并直接从您的 UIButton 调用它。

var i = 0;

function next() {
   ++i;
    window.location.hash = "hl" + i;
    return false;
}

function prev() {
   if (i > 1)
    --i;
    window.location.hash = "hl" + i;
    return false;
}

$(document).ready(function() {
   // get the total number of display sections   
   // where the ID starts with "display_"
   var len = $('div[id^="hl"]').length;

   $('#next').click(function() {
       next();
   });

   $('#prev').click(function() {
      prev():
   });

});

来自 UIButton 的调用将是:

- (IBAction)next:(id)sender {
    [animalDesciption stringByEvaluatingJavaScriptFromString:@"next()"];
}

顺便说一句:我想你忘了lennext()函数中使用以避免跨过最后一个显示部分。

于 2012-04-20T08:07:28.017 回答