使用dot.js我在特定网页上添加了一个按钮,当点击该按钮时,应该在文本字段中添加一些文本,然后触发另一个按钮也被点击。我通过向我的按钮添加一个单击处理程序来模拟这个,该按钮具有以下代码:
var button = $('.some-class').find('button')[0];
console.log(button); // element I expect
button.click();
然而,这不起作用,我不知道为什么。如果我执行.click()
而不是.remove()
,则会从页面中删除该按钮。如果我使用控制台执行相同的代码,则会单击该按钮。这告诉我我确实有正确的元素,但click()
事件特别错误。
有人可以解释为什么这不适用于Safari或Chrome吗?我尝试了很多不同的东西,但我是jQuery的新手,所以我可能会错过一些有关其工作原理的细节。
答案 0 :(得分:1)
我们在聊天中走到了最底层。可能导致问题的是另一个附加到(可能)主体的事件处理程序,它解除了点击。
因此解决方案是阻止event
传播:
event.stopPropagation();
答案 1 :(得分:0)
答案 2 :(得分:0)
问题是click()函数来自jquery,你试图从DOM对象中激活click函数。
尝试
public function actionStripeHook() {
if (Yii::app()->request->isPostRequest) {
try {
$postdata = file_get_contents("php://input");
$event = json_decode($postdata);
switch ($event->type) {
case 'invoice.payment_succeeded':
Yii::log('', 'trace', 'stripe');
Yii::log('==================================', 'trace', 'stripe');
Yii::log('==== Event (' . $event->type . ') ====', 'trace', 'stripe');
Yii::log('==================================', 'trace', 'stripe');
$customer_id = $event->data->object->customer;
$customer = Stripe_Customer::retrieve($customer_id);
$invoice = Stripe_Invoice::retrieve($event->data->object->id);
这是一个插件。 http://plnkr.co/edit/2pcgVt
答案 3 :(得分:0)
答案 4 :(得分:0)
您可以使用以下声明。
var button = $(' .some-class')。找到('按钮')[0] .trigger('点击');